HTTP基础手册 | 青训营笔记

84 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第5天

HTTP

超文本传输协议(HTTP)是一个用于传输超媒体文档(例如 HTML)的应用层协议。它是为 Web 浏览器与 Web 服务器之间的通信而设计的,但也可以用于其他目的。HTTP 遵循经典的客户端 - 服务端模型,客户端打开一个连接以发出请求,然后等待直到收到服务器端响应。HTTP 是无状态协议,这意味着服务器不会在两个请求之间保留任何数据(状态)。尽管通常基于 TCP/IP 层,但它可以在任何可靠的传输层上使用,也就是说,该协议不会像 UDP 那样静默的丢失消息。RUDP——作为 UDP 的可靠化升级版本——是一种合适的替代选择。

image.png

协议发展

image.png

协议分析-报文

image.png

Method

  • [GET]GET 方法请求一个指定资源的表示形式,使用 GET 的请求应该只被用于获取数据。

  • [HEAD]HEAD 方法请求一个与 GET 请求的响应相同的响应,但没有响应体。

  • [POST]POST 方法用于将实体提交到指定的资源,通常导致在服务器上的状态变化或副作用。

  • [PUT]PUT 方法用请求有效载荷替换目标资源的所有当前表示。

  • [DELETE]DELETE 方法删除指定的资源。

  • [CONNECT]CONNECT 方法建立一个到由目标资源标识的服务器的隧道。

  • [OPTIONS]OPTIONS 方法用于描述目标资源的通信选项。

  • [TRACE]TRACE 方法沿着到目标资源的路径执行一个消息环回测试。

  • [PATCH]PATCH 方法用于对资源应用部分修改。

    Safe:不会修改服务器数据的方法 GET HEAD OPTIONS

    Idempotent(幂等):同样的请求被执行一次和连续执行多次的效果是一样的,服务器的状态也是一样的,所有Safe的方法都是idempotent GET HEAD OPTIONS PUT DELETE

状态码

  1. 信息响应 (100199)

  2. 成功响应 (200299)

  3. 重定向消息 (300399)

  4. 客户端错误响应 (400499)

  5. 服务端错误响应 (500599)

image.png

常用请求头

image.png

常用响应头

image.png

缓存

image.png

强缓存

image.png

协商缓存

image.png

cookie

image.png

HTTP2

更快,更稳地,更简单

  • 二进制编码传输
  • 帧(Frame):http2中通讯的最小单位
  • 消息:与逻辑请求或响应消息对应的完整的一系列帧
  • 数据流:已简历的连接内的双向字节流,可以承载一条或者多条消息
  • HTTP2的连接都是永久的,而且仅需要每个来源一个连接
  • 控制流:组织发送方向接收方发送大量数据的机制(主动拒绝)

HTTPS

HTTPS:Hypertext Transfer Protocol Secure

经过TSL/SSL加密