前端网络---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是一个按序传输的链条,因此如果其中一个点丢失了,链路上之后的内容就都需要等待。

相关推荐
源远流长jerry10 分钟前
Linux 网络虚拟化深度解析:从 veth 设备对到容器网络实战
linux·运维·服务器·网络·性能优化·php
CC城子1 小时前
EtherCAT从站ssc V5.12源码研究与记录(二)
网络·ethercat
星恒讯工业路由器1 小时前
SDN:让网络变得更智能、更灵活、更可编程
网络·物联网·信息与通信·sdn
TOWE technology1 小时前
同为科技雷电防护产品,构筑全场景电气安全防线
网络·科技·安全·防雷产品·防雷工程·防雷施工·防雷设计
Sagittarius_A*1 小时前
H3CSE 高性能园区网:VLAN原理与MVRP协议
网络·计算机网络·h3cse
@insist1232 小时前
信息安全工程师-测评核心知识框架与关键流程(下篇)
网络·安全·软考·信息安全工程师·软件水平考试
JunLa2 小时前
L angGraph vs 链式调用
java·网络·数据库
DianSan_ERP2 小时前
抖店订单接口中消费者信息加密解密机制与安全履约全解析
前端·网络·数据库·后端·安全·团队开发·运维开发
難釋懷2 小时前
Redis网络模型-Redis是单线程的吗?为什么使用单线程
网络·数据库·redis
森旺电子3 小时前
嵌入式计算题 栈
网络