HTTP协议 (一)| 青训营笔记

72 阅读3分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的第1篇笔记

HTTP是无状态协议

每当有新的请求发送时,就会有对应的新响应产 生。协议本身并不保留之前一切的请求或响应报文的信息。这是为了 更快地处理大量事务,确保协议的可伸缩性,而特意把 HTTP 协议设 计成如此简单的。

HTTP/1.1 虽然是无状态协议,但为了实现期望的保持状态功能,于 是引入了 Cookie 技术。有了 Cookie 再用 HTTP 协议通信,就可以管 理状态了。

查询 HTTP 服务器端支持 的 HTTP 方法种类:OPTIONS * HTTP/1.1

HTTP方法

  1. GET :获取资源

  2. POST:传输实体主体

  3. PUT:传输文件

    鉴于 HTTP/1.1 的 PUT 方法自身不带验证机制,任何人都可以 上传文件 , 存在安全性问题,因此一般的 Web 网站不使用该方法。

  4. HEAD:获得报文首部

    HEAD 方法和 GET 方法一样,只是不返回报文主体部分。用于确认 URI 的有效性及资源更新的日期时间等。

  5. DELETE:删除文件

    DELETE 方法用来删除文件,是与 PUT 相反的方法。DELETE 方法按 请求 URI 删除指定的资源。

    HTTP/1.1 的 DELETE 方法本身和 PUT 方法一样不带验证机 制,所以一般的 Web 网站也不使用 DELETE 方法。

  6. OPTIONS:询问支持的方法

    OPTIONS 方法用来查询针对请求 URI 指定的资源支持的方法。

    image-20220412151838728

  7. TRACE:追踪路径

    TRACE 方法是让 Web 服务器端将之前的请求通信环回给客户端的方 法。

    TRACE 方法本来就不怎么常用,再加上它容易引发 XST(Cross-Site Tracing,跨站追踪)攻击,通常就更不会用到了。

    image-20220412152014148image-20220412152037567

  8. CONNECT:要求用隧道协议连接代理

    CONNECT 方法要求在与代理服务器通信时建立隧道,实现用隧道协 议进行 TCP 通信。主要使用 SSL(Secure Sockets Layer,安全套接 层)和 TLS(Transport Layer Security,传输层安全)协议把通信内容 加 密后经网络隧道传输。

    image-20220412152225463

    HTTP/1.0和HTTP/1.1

    image-20220412152345108

持久连接

image-20220412152601454

持久连接的好处在于减少了 TCP 连接的重复建立和断开所造成的额 外开销,减轻了服务器端的负载。另外,减少开销的那部分时间,使 HTTP 请求和响应能够更早地结束,这样 Web 页面的显示速度也就相 应提高了。

在HTTP/1.1所有的连接默认为持久连接