学习网络基础

打印 上一主题 下一主题

主题 704|帖子 704|积分 2112

一、OSI模型
          七层架构
                    7、应用层:HTTP
                    6、表示层
                    5、会话层
                    4、传输层:TCP
                    3、网络层
                    2、数据链路层
                    1、物理层

 
 
 
二、http协议
          2.1、HTTP概念
                    1、超文本传输协议(Hyper Text Transfer Protocol)
                    2、用于从万维网服务器传输超文本到本地浏览器的传送协议
                    3、HTTP协议是基于TCP的应用层协议,它不关心数据传输的细节,主要是用来规定客户端和服务端的数据传输格式,最初是用来向客户端传输HTML页面的内容。默认端口是80
                    4、http是基于请求与响应模式的、无状态的、应用层的协议
          2.2、HTTP请求类
                    1、get:获取资源
                    2、post:提交资源
                    3、put:修改资源
                    4、delete:删除资源
                    5、head:查看响应头
                    6、options:查看支持的请求方式
                    7、trace:返回服务器收到的请求数据,用于开发自测
                    8、connect:服务器作为跳板,让服务器代理用户去其他网站访问资源,然后再把拿到的资源返回给用户(重定向)
          2.3、互联网架构类型
                    1、BS架构(浏览器)
                    2、CS架构(应用程序/app)
                    3、流程:客户端   服务器(前端服务器nginx)  后端服务器(网关,课程服务,鉴权服务))
          2.4、HTTP组成
                    2.4.1、请求报文

                              2.4.1.1、请求行
                                        1)请求方法
                                        2)请求地址
                                        3)HTTP版本
                                        4)回车符(看不见)
                                        5)换行符(看不见)
                              2.4.1.2、请求头
                                        1、key:value
                                                  1.1、请求头关注字段
                                                            1)Accept:*/*:用来告知客户端可以处理的内容类型
                                                            2)token:null:鉴权,后端返回的token信息
                                                            3)Set-cookies:前端缓存信息,session_id:用来鉴权
                                                            4)Content-Type:application/json;charset=utf-8:前端告诉后端请求参数编码的格式
                                                  1.2、常见Content-Type类型
                                                            1)表单:application/x-www-form-urlencoded
                                                            2)json格式编码:application/json
                                                            3)上传文件或图片:multipart/from-data
                                                            4)提交html格式文件:text/xml
                                        2、回车符(看不见)
                                        3、换行符(看不见)
                              2.4.1.3、空行
                                        1、回车符(看不见)
                                        2、换行符(看不见)
                              2.4.1.4、请求正文
                    2.4.2、响应报文

      2.4.2.1、状态行
                                        1)协议版本
                                        2)状态码
                                        3)状态码描述
                                        4)回车符(看不见)
                                        5)换行符(看不见)
                              2.4.2.2、响应头
                                        1、key:value
                                                  1.1、响应头关注字段
                                                            1)Content-Type:application/json; charset=utf-8:告诉前端后端支持的编码格式
                                                            2)Set-cookie:告诉前端如何设置缓存信息
                                        2、回车符(看不见)
                                        3、换行符(看不见)
                              2.4.2.3、空行
                                        1、回车符(看不见)
                                        2、换行符(看不见)
                              2.4.2.4、响应正文
                    2.4.3、请求体
                              1、get请求:参数拼接在接口地址后面
                              2、post请求:参数放在请求体body里面
                              3、get与post区别
        1)参数传递:get是向服务器获取数据,参数放到url地址后面;post是向服务器传送数据,参数放在body里
        2)安全性:get相对不那么安全,post相对安全
        3)请求参数长度限制(后端可修改):理论上get参数长度有限制,post长度无限制,实际协议本身并没有做长度限制,是后端服务器做了限制,考虑内存问题
        4)幂等性(同一个请求无论做多少次,结果都不变):通常情况下,get请求是幂等的,post请求不幂等(后端要做幂等处理,如金融方面)
                    2.4.4、响应体
                              get与post无区别,该怎么返回就怎么返回
                    2.4.5、响应状态码
                              1、1xx:服务器已经收到了请求,需要客户端继续操作
                                        1)100:客户端应该继续请求
                                        2)101:切换到更高级的协议
                              2、2xx:HTTP成功状态码
                                        1)200:请求成功,一般用于get,和post
                                        2)201:请求已经成功,并创建了新的资源
                                        3)202:请求已经接受,但未处理完成
                                        4)204:服务器处理成功,但是并未返回内容
                                        5)206:服务器成功处理了部分请求,get请求,常用与资源下载
                              3、3xx:资源重定向
                                        1)301:请求资源被永久移动到新的url,返回替代该资源的url,浏览器会自动重定向到新的url,后续资源的访问将使用新的替代
                                        2)302:临时移除,301是永久移除,资源只是临时移动到新的url,客户端继续使用原有的url
                                        3)303:查看该资源的其他地址
                                        4)304:请求的资源未修改,当服务器返回304,此时服务器不会返回任何资源,客户端将使用本地缓存资源。
                                        5)305:请求的资源必须通过代理访问
                                        6)307:临时重定向,与302类似
                              4、4xx:客户端错误
                                        1)401:请求需要用户的身份认证
                                        2)402:保留状态码,并未使用
                                        3)403:服务器已经收到了客户端的请求,但是拒绝执行这个请求
                                        4)404:服务器无法找到客户端需要访问的资源
                                        5)407:请求需要代理进行身份认证,与401类似
                                        6)408:服务器等待客户端发送的请求时间过长,超时
                              5、5xx:服务端错误
                                        1)500:服务器内部错误,无法完成请求
                                        2)501:服务器不支持请求的功能,无法完成请求
                                        3)502:网关或者是代理服务器执行请求的时候,收到了一个无效的响应
                                        4)503:服务器故障,暂时无法处理客户端的请求
                                        5)504:网关或者是服务器代理,无法从远处服务器获取请求
                                        6)505:服务器不支持请求的HTTP协议的版本,无法处理请求
三、TCP协议
          3.1、报文格式

                    3.1.1、TCP头部
                              1)Header Length:头部长度
                              2)Reserved:保留位
                              3)Window Size:还能接收容量
                              4)ACK:确认号字段是否有效,若ACK=1,则有效
                              5)SYN:在建立连接时,同步序号
                              6)FIN:标记数据是否发送完毕,若FIN=1,表示已经发送完成
                    3.1.2、TCP数据
                      详见:http://testingpai.com/article/1621601730160
          3.2、三次握手/四次挥手
                    详见:http://testingpai.com/article/1621669379653
四、https协议
          4.1、CA证书:证书签发机构颁布的数字证书
          4.2、请求过程
                    4.2.1、三次握手

                              1、客户端发送https请求,服务端将公钥以证书的形式发送给客户端
                              2、客户端收到后加密发送给服务端,服务端解密并确认身份,发送加密串给客户端
                              3、客户端解密并确认身份,问服务端要协议密钥,通知服务端握手结束,服务端响应密钥给客户端,通知客户端握手结束
                    4.2.2、四次挥手

                              1、客户端告知服务端发送完毕
                              2、服务端发送确认信息
                              3、客户端告知服务端确实要关闭连接
                              4、服务端确认关闭释放TCP连接
五、http与https区别
          1、安全性:http明文传输,https加密传输(CA证书),https相对安全
          2、端口:http端口:80,https端口:443

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

郭卫东

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表