“ 文章介绍了HTTP/0.9、HTTP/1.0、HTTP/1.1、HTTP/2.0、HTTP/3.0各自的特点,并通过浏览器开发者工具和响应辅助网站对比HTTP/1.1与HTTP//2.0。”
1.HTTP/0.9(1991)
- HTTP/0.9是第一个版本的HTTP协议,只允许客户端发送GET请求,不支持请求头,由于没有协议头,所以HTTP/0.9协议只支持纯文本内容。
- HTTP/0.9是典型的无状态协议,每次事务独立进行处理,事务结束时释放连接。一次HTTP/0.9的传输首先要建立一个由客户端到web服务器的TCP连接,由客户端发起一个请求,服务器接收请求信息之后,读取对应的 HTML 文件,并将数据以 ASCII 字符流返回给客户端。
- 特点:
- 只允许GET请求
- 只有一个请求行(没有请求头和请求体)
- 只支持纯文本的内容
- 服务器只需要返回数据(没有返回头信息)
- 返回的文件内容是以 ASCII 字符流来传输(因为都是 HTML 格式的文件,所以使用 ASCII 字节码来传输是最合适的。)
2.HTTP/1.0(1996)
-
浏览器需要展示多种类型的文件成为HTTP/1.0 的一个核心诉求,并且编码方式不局限于ASCII 编码。
-
HTTP/1.0 引入了请求头和响应头,都是以为 Key-Value 形式保存的,在 HTTP 发送请求时,会带上请求头信息,服务器返会先返回响应头信息再返回数据。
-
特点:
-
在 HTTP/1.0 中提供了 Cache 机制,用来缓存已经下载过的数据,减轻服务器的压力;
-
请求头中加入了用户代理,区分客户端Window或者Mac用户的数量;
-
引入状态码,并通过响应行的方式来通知浏览器。
-
3.HTTP/1.1(1997)
-
HTTP 数据和断开 TCP 连接三个阶段,随着浏览器普及,单个页面中的图片文件越来越多。
-
HTTP/1.1 中增加了持久连接的方法,它的特点是在一个 TCP 连接上可以传输多个 HTTP 请求,只要浏览器或者服务器没有明确断开连接,那么该 TCP 连接会一直保持。如果你不想要采用持久连接,可以在 HTTP 请求头中加上Connection: close。
-
特点:
-
队头阻塞(head of line blocking)——持久连接减少 TCP 的建立和断开次数,但它需要等待前面的请求返回之后,才能进行下一次请求,如果
-