这是我参与「第四届青训营 」笔记创作活动的第5天
HTTP
超文本传输协议(HTTP)是一个用于传输超媒体文档(例如 HTML)的应用层协议。它是为 Web 浏览器与 Web 服务器之间的通信而设计的,但也可以用于其他目的。HTTP 遵循经典的客户端 - 服务端模型,客户端打开一个连接以发出请求,然后等待直到收到服务器端响应。HTTP 是无状态协议,这意味着服务器不会在两个请求之间保留任何数据(状态)。尽管通常基于 TCP/IP 层,但它可以在任何可靠的传输层上使用,也就是说,该协议不会像 UDP 那样静默的丢失消息。RUDP——作为 UDP 的可靠化升级版本——是一种合适的替代选择。
协议发展
协议分析-报文
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
状态码
-
信息响应 (
100–199) -
成功响应 (
200–299) -
重定向消息 (
300–399) -
客户端错误响应 (
400–499) -
服务端错误响应 (
500–599)
常用请求头
常用响应头
缓存
强缓存
协商缓存
cookie
HTTP2
更快,更稳地,更简单
- 二进制编码传输
- 帧(Frame):http2中通讯的最小单位
- 消息:与逻辑请求或响应消息对应的完整的一系列帧
- 数据流:已简历的连接内的双向字节流,可以承载一条或者多条消息
- HTTP2的连接都是永久的,而且仅需要每个来源一个连接
- 控制流:组织发送方向接收方发送大量数据的机制(主动拒绝)
HTTPS
HTTPS:Hypertext Transfer Protocol Secure
经过TSL/SSL加密