本篇文章参考以下博文
阅读本篇文章前,可以先了解一下客户端如何与服务端建立连接
文章目录
HTTP各个版本区别
| 发布时间 | 协议 | 命令(新增) | 请求格式 | 特点 | 缺点 | |
|---|---|---|---|---|---|---|
| HTTP 1.0 | 1996.05 | TCP/IP | GET、POST、HEAD | 头文件是文本,数据体是本文或二进制 | 请求与回应格式改变,通信必须包含HTTP header,其他功能有状态码,权限,缓存、内容编码等 | 每个TCP连接只能发送一个请求。 发送数据完毕,连接就关闭,如果还要请求其他资源,就必须再新建一个连接,建立连接成本太高,发送速率较慢 |
| HTTP 1.1 | 1997.01 | TCP/IP | PUT、PATCH、OPTIONS、DELETE | 同上 | 管道机制(pipelining),即在同一个TCP连接里面,客户端可以同时发送多个请求。 | “队头堵塞”(Head-of-line blocking)所有数据通信都是按次序进行的,上一个结束,下一个才能开始 |
| HTTP 2 | 2015 | TCP/IP | 同上 | 纯二进制 | HTTP/2 则是一个彻底的二进制协议,头信息和数据体都是二进制,并且统称为"帧"(frame):头信息帧和数据帧。数据帧以乱序发送,不用再排队等待发送了 | 如果产生丢包,TCP连接就需要重新建立,造成后面数据阻塞 |
| QUIC(HTTP3.0) | 2016.11 | UDP/IP | - | 同上 | 0-RTT 建连,多路复用 | - |
HTTP1.0
1.请求格式
GET / HTTP/1.0
User-Agent: Mozilla/5.0(Macintosh; Intel Mac OS X 10_10_5)
Accept: */*
2.响应格式
HTTP/1.0 200 OK
Content-Type: text/plain
Content-Length: 125742
Expires: Thu, 05 Dec 1997 16:00:00 GMT
Last-Modified: Wed, 5 August 1996 15:55:28 GMT
Server: Apache 0.84
<html>
<body>Hello World!</body>
</html>
回应格式“头信息

最低0.47元/天 解锁文章
1325

被折叠的 条评论
为什么被折叠?



