本文介绍: 1、二进制传输(1.1 版本通过文本进行传输内容不能分开传递,2.0版本请求数据转换成二进制格式然后标记索引,将数据包分成一片一片,相当于并发传输数据给到服务端)3、头部压缩多个请求中,可能会存在相同的请求头,于是在客户端服务端维护一张静态表,通过索引来将多个请求中的请求字段合并传递时,只需传递索引即可)1、会造成队头阻塞问题(虽然同一个TCP 可以同时发送多个请求,但是服务端还是一个一个请求进行处理进行返回,如果上一个返回延迟,会阻塞后面的流程

HTTP

什么是http – 蘑菇声活

http特点

1.基于TCP协议之上的应用协议

2.基于请求–响应

3.无状态(每次发送请求对服务端都是新的)

4.无/短连接客户端不会一直跟服务端连接)

http请求协议与响应协议

请求协议

请求首行:请求方式,请求地址,请求协议版本

请求头:keyvalue形式

请求体:get请求一般没有请求体,post请求有请求体

响应协议

响应首行:协议版本响应状态码,响应描述符  HTTP/1.1 200 OKrn

响应头

响应体:一般给HTML标签

http各个版本间的差别

0.9 版本

特点:
1、最早出现的一个版本
2、只支持 GET 请求
3、只支持传输 HTML 的数据格式
4、无状态性(客户端发送请求,服务端接受请求并返回结果客户端后,客户端和服务端链接会马上断开
缺点:
1、只支持 GET 方法单一
2、只支持服务端返回 HTML

1.0 版本

1.0 的版本出现是为了解决 0.9 版本缺陷问题
优点:
1、支持 GET POST 和 HEAD
2、支持传入多种数据格式视频图片、二进制等)
3、新增状态码、缓存
缺点:
1、一个 TCP 链接只能发送一个请求

1.1 版本

1.1 版本的出现是为了解决 1.0 版本的缺陷
优点:
1、持久性连接,即 TCP 连接不关闭可以多个请求复用
2、管道机制(同一个 TCP 连接,客户可以同时发送多个请求)
3、新增了一些请求方法: PUT DELETE OPTIONS
缺点:
1、会造成队头阻塞问题(虽然同一个TCP 可以同时发送多个请求,但是服务端还是会一个一个请求进行处理进行返回,如果上一个返回延迟,会阻塞后面的流程)

2.0 版本

优点:
1、二进制传输(1.1 版本是通过文本进行传输内容不能分开传递,2.0版本将请求的数据转换成二进制格式,然后标记索引,将数据包分成一片一片,相当于并发传输数据给到服务端
2、多路复用(多个请求通过一个 TCP 连接)
3、头部压缩 (多个请求中,可能会存在相同的请求头,于是在客户端和服务端维护一张静态表,通过索引来将多个请求中的请求字段合并,传递时,只需传递索引即可
4、服务器端推送浏览器刚请求 HTML 时,就会把可能用到的 CSS JS 发送给客户端,减少等待延迟
缺点:
1、队头阻塞

3.0 版本

3.0 不同于以往的版本,基于谷歌的QUIC,底层基于 UDP 协议
优点:
1、基于UDP,提高传输效率,降低延迟没有三次握手和四次挥手)
2、使用stream一步扩展HTTP2.0 的多路复用,传输多少文件可以产生多少stream,若发生丢包,只需要传输丢失stream

原文地址:https://blog.csdn.net/flclyz/article/details/134670825

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_25980.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注