前端网络---http协议演变

http协议的演变

什么是http协议?

HTTP 协议全称为 Hypertext Transfer Protocol,即超文本传输协议,是互联网上应用最为广泛的一种网络传输协议

http协议演变

1991年0.9版本-------1996年1.0版本-------1997年1.1版本--------2015年2版本-------2022年3版本

http/0.9特点

1、只支持GET请求

2、响应为HTML格式的文本

3、没有请求头响应头

http/1.0特点

1、HTTP/1.0支持多种HTTP方法,包括GET、POST、HEAD、PUT、DELETE等

2、增加了请求头和响应头

javascript 复制代码
// 请求头

accept:text/html   // 请求的文件类型
 
accept-encodeing: gzip,deflate  // 服务器采用的压缩方式
 
accept-charset: utf-8 // 文件的编码格式
 
accept-language:zh-CN,zh // 页面显示的语言 
javascript 复制代码
// 响应头

content-encoding :gzip // 服务器响应数据的压缩格式
 
content-type:text/html;charset=UTF-8  // 服务器响应的 数据类型 和 编码格式

3、引入了状态码

4、提供了 Cache 机制,用来缓存已经下载过的数据

5、服务器需要统计客户端的基础信息,比如windows1和macOS的用户数量分别是多少,所以HTTP/1.0的请求头还加入了用户代理字段。

http/1.0待改进的部分

1、每个请求都需要建立一个新的TCP连接,TCP是个重协议,这会导致很多的网络开销

2、HTTP/1.0没有处理并发请求的机制,这会导致浏览器需要等待前一个请求完成后才能发送下一个请求

http/1.1特点

1、在header中引入Connection: keep-alive,支持持久连接

2、支持管道化技术,它可以让浏览器同时发送多个请求,不用等待服务器返回。提高了并发性能。

3、头部信息是文本,数据部分可以是文本也可以是二进制

http/1.1待改进的部分

**1、**那就是队头堵塞,HTTP/1.1 所有的数据通信都是按次序完成的,服务器只有处理完一个请求,才会处理下一个请求,如果前面的请求处理特别慢,后面就会有很多请求排队等着,严重影响整个页面加载

http/2特点

1、HTTP/2版本的头部和数据部分都是二进制

2、减少头部信息数据大小,通过HPACK算法将头信息压缩后再发送

3、减少信息发送次数,客户端和服务端同时维护一张头信息表,所有字段都会存入这个表,以后请求只要发送不同字段即可,这样就提高速度了

4、支持多路复用,通过单一连接可以发送多个的请求-响应消息,不用按照顺序一一对应,这就避免了队头堵塞问题,每个请求或回应的所有数据包,称为一个数据流(stream),每个数据流都有一个独一无二的编号来区分。数据流的最小单位是帧,帧会组成消息数据包,多个消息数据包组成流,一个tcp连接里,可并发许多流。

5、http2支持服务端推送,即允许服务端未经请求,主动向客户端发送资源

http/2​​​​​​​待改进的部分

1、 解决了应用层面的队头阻塞问题,但是并没有解决TCP的队头阻塞

什么是TCP的队头阻塞?

采用HTTP/2时,浏览器一般会在单个TCP连接中创建并行的几十个乃至上百个传输。

如果HTTP/2连接双方的网络中有一个数据包丢失,或者任何一方的网络出现中断,整个TCP连接就会暂停,丢失的数据包需要被重新传输。因为TCP是一个按序传输的链条,因此如果其中一个点丢失了,链路上之后的内容就都需要等待。

相关推荐
搬码临时工1 小时前
域名访问内网网站知多少?通过自定义域名访问本地Web 服务
服务器·网络·tcp/ip
摘取一颗天上星️1 小时前
端到端记忆网络 vs 神经图灵机:外部记忆的两种哲学之争
网络·人工智能·深度学习·机器学习·lstm·外部记忆
数据与人工智能律师2 小时前
当机床开始“思考”,传统“制造”到“智造”升级路上的法律暗礁
大数据·网络·算法·云计算·区块链
开源的6lowpan3 小时前
无线USB转换器TOS-WLink露面1个月以来总结
网络·无线调试器·无线usb转换器·无线串口·无线jlink·无线stlink
~央千澈~3 小时前
WebSocket与XMPP:即时通讯技术的本质区别与选择逻辑优雅草卓伊凡|片翼|许贝贝
网络·websocket·网络协议
超级土豆粉3 小时前
OSI 七层网络模型
网络
盛满暮色 风止何安4 小时前
BGP基础
运维·服务器·网络·网络协议·tcp/ip·网络安全·智能路由器
老六ip加速器7 小时前
手机IP地址更换的影响与方法
网络协议·tcp/ip·智能手机
xiaohanbao0914 小时前
day54 python对抗生成网络
网络·python·深度学习·学习
菜鸟康14 小时前
C++实现分布式网络通信框架RPC(3)--rpc调用端
分布式·网络协议·rpc