图解HTTP-2-简单的HTTP协议

  1. 请求报文和响应报文
  2. HTTP是不保存状态的协议(无状态协议)
  3. HTTP方法
  4. 持久连接节省通信量

请求报文和响应报文

  • 请求报文
    请求方法、请求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" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏