http发展历程:从http0.9 到 http3.0
HTTP0.9:
最简单的只有请求行 GET index.html
HTTP1.0:
- 增加请求头、响应头,让请求和相应都更清晰
- 增加状态码,让响应更清晰
- 增加缓存功能,已请求过的内容再次请求时就可直接使用缓存
GET index.html HTTP/1.0
accept: application/html
accept-charset: utf-8
accept-encoding: gzip
accept-language: zh-CN
HTTP/1.0 200 OK <!DOCTYPE html> <html> <head></head> <body>hello world!</body> </html>
- accept 解决文件格式问题,是json还是html,浏览器根据不同文件格式来解析文件
- accept-charset 解决文件编码问题,告知浏览器如何将字符流解析成字节流
- accept-encoding 解决大文件压缩问题,浏览器采用指定的解压方式来解压
- accept-language 解决国际化问题,不同国家请求不同语言的文件
HTTP1.1
- 持久连接,多个http请求使用同一个tcp连接,减少了tcp建立连接时的开销
- 客户端和服务器之间可以建立多个tcp连接以解决队头阻塞的问题
- 响应体可以分块传输,无需一次传输全部内容
- 响应头增加content-length字段满足动态内容无法一次计算出长度和无法一次传输完成的问题
- 增加了安全机制和cookie机制
HTTP2.0
多路复用,客户端和服务器之间只建立一条tcp,每个http请求被切分成多帧,多个http的帧混合在一起在一个tcp连接上传送
HTTP3.0
干掉tcp,因为tcp依然是顺序发送,顺序接收的,依然有队头堵塞问题,干掉tcp才能解决队头堵塞问题,但这只是个梦

浙公网安备 33010602011771号