目录
- 基本概念
- 基于 HTTP 的系统组成
- HTTP 的基本性质
- HTTP 请求头 & 响应头
- HTTP 的请求方法
- HTTP 的返回码
- HTTP 的 Cookie
- HTTP 缓存 Cache-Control
- 会话
- HTTP/1.x 的连接管理
基本概念
HTTP(Hypertext Transfer Protocol,超文本传输协议)是一个用于传输超媒体文档(例如 HTML)的应用层协议。它是为 Web 浏览器与 Web 服务器之间的通信而设计的。HTTP 遵循经典的客户端—服务端模型,客户端打开一个连接以发出请求,然后等待直到收到服务器端响应。HTTP 是无状态协议,这意味着服务器不会在两个请求之间保留任何数据(状态)。
https://i-blog.csdnimg.cn/direct/f5a2b4baac15499abfe1a777452c7326.png" alt="在这里插入图片描述" />
https://i-blog.csdnimg.cn/direct/48149c1451f84730abeb812ebd78f736.png" alt="在这里插入图片描述" />
基于 HTTP 的系统组成
https://i-blog.csdnimg.cn/direct/70e7f96ebc4143ca98c66648db40f910.png" alt="在这里插入图片描述" />
- 客户端:用户代理
- Web 服务器
- 代理(缓存、过滤、负载均衡、认证、日志)
HTTP 的基本性质
- 简单易读
- 可扩展
- 会话,无状态
HTTP 请求头 & 响应头
https://i-blog.csdnimg.cn/direct/f5dc9efd0af44018b34c2f39511451eb.png" alt="在这里插入图片描述" />
https://i-blog.csdnimg.cn/direct/45fd461a906940e4ba9cd55d40d17e67.png" alt="在这里插入图片描述" />
HTTP 的请求方法
GET 方法请求一个指定资源的表示形式,使用 GET 的请求应该只被用于获取数据。
HEAD 方法请求一个与 GET 请求的响应相同的响应,但没有响应体。
POST 方法用于将实体提交到指定的资源,通常导致在服务器上的状态变化或副作用。
PUT 方法用有效载荷请求替换目标资源的所有当前表示。
DELETE 方法删除指定的资源。
CONNECT 方法建立一个到由目标资源标识的服务器的隧道。
OPTIONS 方法用于描述目标资源的通信选项。
TRACE 方法沿着到目标资源的路径执行一个消息环回测试。
PATCH 方法用于对资源应用部分修改。
HTTP 的返回码
HTTP 响应状态码用来表明特定 HTTP 请求是否成功完成。 响应被归为以下五大类:
- 信息响应 (100–199)
- 成功响应 (200–299)
- 重定向消息 (300–399)
- 客户端错误响应 (400–499)
- 服务端错误响应 (500–599)
HTTP 的 Cookie
HTTP Cookie(也叫 Web Cookie 或浏览器 Cookie)是服务器发送到用户浏览器并保存在本地的一小块数据。浏览器会存储 cookie 并在下次向同一服务器再发起请求时携带并发送到服务器上。通常,它用于告知服务端两个请求是否来自同一浏览器——如保持用户的登录状态。Cookie 使基于无状态的 HTTP 协议记录稳定的状态信息成为了可能。
Cookie 主要用于以下三个方面:
- 会话状态管理:如用户登录状态、购物车、游戏分数或其他需要记录的信息
- 个性化设置:如用户自定义设置、主题和其他设置
- 浏览器行为跟踪:如跟踪分析用户行为等
Cookie 曾一度用于客户端数据的存储,因当时并没有其他合适的存储办法而作为唯一的存储手段,但现在推荐使用现代存储 API。由于服务器指定 Cookie 后,浏览器的每次请求都会携带 Cookie 数据,会带来额外的性能开销(尤其是在移动环境下)。新的浏览器 API 已经允许开发者直接将数据存储到本地,如使用 Web storage API(localStorage 和 sessionStorage)或 IndexedDB 。
HTTP 缓存 Cache-Control
会话
在像 HTTP 这样的客户端——服务器(Client-Server)协议中,会话分为三个阶段:
1、客户端建立一条 TCP 连接(如果传输层不是 TCP,也可以是其他适合的连接)。
2、客户端发送请求并等待应答。
3、服务器处理请求并送回应答,回应包括一个状态码和对应的数据。
从 HTTP/1.1 开始,连接在完成第三阶段后不再关闭,客户端可以再次发起新的请求。这意味着第二步和第三步可以连续进行数次。
HTTP/1.x 的连接管理
https://i-blog.csdnimg.cn/direct/293b0686dad745d9abe1b40c034f3def.png" alt="在这里插入图片描述" />
参考:https://developer.mozilla.org/zh-CN/docs/Web/HTTP