图解HTTP-2-简单的HTTP协议
请求报文和响应报文
- 请求报文
请求方法、请求URI、协议版本、可选的请求首部字段、内容实体。 - 响应报文
协议版本、状态码、用以解释状态码的原因短语、可选的响应首部字段、实体主体。
HTTP是不保存状态的协议(无状态协议)
在HTTP这个级别,协议对于发送过的请求或响应都不做持久化处理
每当有对应的新响应产生,协议本身并不保留之前一切的请求或响应报文的信息。
这是为了更快地处理大量事务,确保协议的可伸缩性。
但是随着Web发展,用户需要在网站保存登陆状态。
HTTP/1.1虽然是无状态协议,但引用Cookie技术后,就可以管理状态。
HTTP方法
GET 获取资源
POST 传输实体主体
PUT 传输文件
HTTP/1.1的PUT方法不带验证机制,任何人都可以上传文件,因此一般Web网站不使用该方法。
HEAD 获得报文首部
HEAD 方法和 GET 方法一样,只是不返回报文主体部分。用于确认 URI 的有效性及资源更新的日期时间等。
DELETE 删除文件
一般也不使用
OPTIONS 询问支持的方法
TRACE 追踪路径
易引发XST(跨站追踪)攻击,所以用不到。
CONNECT 要求用隧道协议连接代理
CONNECT 方法要求在与代理服务器通信时建立隧道,实现用隧道协议进行 TCP 通信。
主要使用 SSL(Secure Sockets Layer,安全套接 层)和 TLS(Transport Layer Security,传输层安全)协议把通信内容加密后经网络隧道传输。
格式:CONNECT 代理服务器名:端口号 HTTP版本
持久连接节省通信量
为了解决多次通信的开销问题,HTTP/1.1和一部分HTTP/1.0想出了持久连接(HTTP Persistent Connections,也称为HTTP keep-alive或HTTP connection reuse)的方法。
特点:只要任意一端没有明确提出断开连接,则保持TCP连接状态。
注:在HTTP/1.1中,所有连接默认是持久连接
附:管线化(pipelining)技术比持久连接还要快。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 yanglau0527@gmail.com
文章标题:图解HTTP-2-简单的HTTP协议
文章字数:566
本文作者:Cynaith
发布时间:2020-05-25, 13:35:52
最后更新:2020-05-25, 16:23:21
原始链接:https://cynaith.github.io/2020/05/25/%E5%9B%BE%E8%A7%A3HTTP-%E7%AE%80%E5%8D%95%E7%9A%84HTTP%E5%8D%8F%E8%AE%AE/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。