Skip to content

HTTP 基础 ​

请求与响应模型 ​

客户端发送方法和目标,服务器以状态码和可选内容回应。HTTP 语义定义请求与响应的含义,各版本采用不同的线缆编码。

HTTP 是无状态协议,服务器可用应用凭证关联多次交互。连接复用不等于会话认证。

HTTP 请求方法、安全性与幂等性 ​

GET 和 HEAD 是安全且幂等的方法。PUT 和 DELETE 幂等但不安全。POST 和 PATCH 的方法语义不保证幂等。

安全性描述客户端是否请求改变状态。幂等性描述重复同一请求的预期效果,重复 DELETE 可返回不同状态码。

HTTP 状态码 ​

1xx 为中间响应,2xx 表示成功,3xx 包含重定向和缓存验证结果,4xx 表示客户端请求相关错误,5xx 表示服务器侧错误。

状态码常见含义
200 / 201 / 204成功、已创建、成功但无内容
401 / 403 / 404缺少有效认证凭证、拒绝执行、未找到或不愿披露资源
405 / 429目标资源不支持该方法、请求过多
500 / 502 / 503 / 504内部错误、上游响应无效、暂不可用、上游响应超时

301、308 表示永久重定向,302、307 表示临时重定向。301 和 302 允许用户代理把 POST 改为 GET,307 和 308 保留方法。303 通常引导客户端用 GET 获取另一个资源。

请求头、响应头与消息体 ​

字段提供路由、内容协商、认证和缓存等元数据,消息体承载内容。HEAD 响应没有消息体,204 和 304 也不携带内容。

Referer 可用于静态资源防盗链,但受 Referrer-Policy 影响,可能被省略或仅含源,也可由非浏览器客户端伪造。

Content-Type 与媒体类型 ​

Content-Type 描述内容的媒体类型和参数,例如 application/json、text/html 与 charset、multipart/form-data 与 boundary。

Accept 表达客户端可接受的响应类型。Content-Encoding 描述 gzip 等内容编码。

服务器通过 Set-Cookie 设置 Cookie,可发送多个独立字段。客户端用 Cookie 字段发送符合条件的名称和值。

Domain、Path、Expires 等属性由客户端用于存储和筛选,通常不会作为属性随 Cookie 字段回传。

基于 MIT 许可发布