网络协议基础理解

传输协议

一、TCP协议
面向连接、可靠的基于字节流的协议,实行“顺序控制”、“重发控制”、“流量控制”、“拥塞控制”机制保证可靠性传输。三次握手四次挥手比较耗时。

二、UDP协议
不可靠数据报文协议,确保消息的大小,不保证消息确定到达。

三、HTTP协议
三次握手:客户端发送数据包给服务端数据包
服务端针对客户端的数据包进行缺人应答,并发送数据包请求建立连接“客户端建立连接标志”
客户端针对服务端的 数据包确认应答 “服务端建立连接标志"
四次挥手:客户端发送数据包请求断开连接给服务端
服务端 等待关闭并发送给客户端确认应答
服务端发送数据包,请求断开连接
客户端针对上一次确认应答 ”服务端关闭“
客户端会等待2MSL “MSL”= 报文最大生存时间
客户端要等待2MSL的情况。为了保证客户端最后一次挥手的报文能够到达服务器,如果第四次挥手的报文段丢失了,服务器会超时重传这个第三次挥手的报文段,所以客户端不是直接进入CLOSED,而是要保持TIME_WAIT(等待2MSL就是TIME_WAIT)就起到作用了,当再次收到服务器的超时重传的断开连接的第三次挥手的请求的时候,客户端会继续给服务器发送一个第四次挥手的报文,能够保证对方(服务器)收到客户端的回应报文,最后客户端和服务器正确的关闭连接。

四、HTTP和HTTPS的区别
HTTP的缺点:使用明文通信、不能验证对方的身份、无法验证报文的完整性
HTTPS = HTTP + 加密 + 认证 + 完整性保护
HTTPS=HTTP+SSL(协议)

五、HTTP版本的区别
HTTP/1.0:get、post、head请求方法;支持cache ;每次通信包括头信息header;但是每次tcp连接只能发送一个请求,响应后就会关闭连接,下一个请求需要再次建立TCP连接,不支持keep-alive

HTTP/1.1:1、 就是引入了持久连接,即TCP连接默认不关闭,可以被多个请求复用,不用声明Connection: keep-alive。
2、管道机制,在同一个TCP连接里,允许多个请求同时发送,增加了并发性。
3、分块传输编码,使用Content-Length字段的前提条件是,服务器发送回应之前,必须知道回应的数据长度。 1.1版规定可以不使用Content-Length字段,而使用"分块传输编码"。只要请求或回应的头信息有Transfer-Encoding字段,就表明回应将由数量未定的数据块组成。
4、新增了请求方式PUT、PATCH、OPTIONS、DELETE等。
5、 客户端请求的头信息新增了Host字段,用来指定服务器的域名。
6、 HTTP/1.1支持文件断点续传,

HTTP/2.0: 二进制分帧、多路复用、头部压缩、服务器推送
1、HTTP/2的头信息和数据体都是二进制,并且统称为"帧"(frame):头信息帧和数据帧。
2、多路复用: HTTP/2 复用TCP连接,在一个连接里,客户端和浏览器都可以同时发送多个请求或回应,而且不用按照顺序一一对应。举例来说,在一个TCP连接里面,服务器同时收到了A请求和B请求,于是先回应A请求,结果发现处理过程非常耗时,于是就发送A请求已经处理好的部分, 接着回应B请求,完成后,再发送A请求剩下的部分。
3、头信息压缩: HTTP 协议不带有状态,每次请求都必须附上所有信息。所以,请求的很多字段都是重复的,一模一样的内容,每次请求都必须附带,这会浪费很多带宽,也影响速度。 引入了头信息压缩机制,一方面,客户端和服务器同时维护一张头信息表,所有字段都会存入这个表,生成一个索引号,以后就不发送同样字段了,只发送索引号,这样就提高速度了。
4、服务器推送: HTTP/2 允许服务器未经请求,主动向客户端发送资源,这叫做服务器推送(server push)。服务器会顺便把一些客户端需要的资源一起推送到客户端,免得客户端再次创建连接发送请求到服务器端获取。这种方式非常合适加载静态资源。服务器端推送的这些资源其实存在客户端的某处地方,客户端直接从本地加载这些资源就可以了,不用走网络,速度自然是快很多的。

六、请求头信息
key:value的形式 :host域名或者ip、connection: keep-alive 、Upgrade是否支持https 、品牌、ACCEPT形式、ACCEPT语言、Cookie、刷新、URL、字符集

七、请求体
Post方式 提交数据、上传文件数据,请求体存放数据量

八、post get请求区别
postURL不可见、get请求被浏览器主动cache、get只能url编码、get参数有限且只接受ASCII字符类型、get只能url传递。

九、http协议响应分析
response:响应行(报文协议、版本)、响应头、响应体

十、HTTP状态码
1xx服务器收到请求
2xx成功,操作被成功处理
3xx重定向
301永久移动新的URL、302临时移动、304客户端缓存访问过的资源、305代理访问
4xx客户端错误
400客户端请求存在语法错误、401用户身份认证、403认识你但是拒接执行此请求没有权限、
404无法找到、405请求方法被终止、
5xx服务端错误
500服务器异常

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值