Skip to content

请求解析

  • 是指对客户端发送的请求进行解析,提取出请求的方法、URL、协议版本、请求头和请求体等信息。

HTTP 协议

  • 协议说明:超文本传输协议,默认端口为 80
  • 传递报文:明文模式

HTTPS 协议

  • 协议说明:http+ssl(安全套接层),默认端口 443。比 http 协议更加安全。
  • 传递报文:加密模式

请求头

客户端向服务发送请求所携带的参数

  • Content-Type:用来说明请求或响应中的实体数据的格式,告诉服务器如何解析数据。例如,Content-Type: application/json 表示以 JSON 格式传输数据,常用于前后端通信的 API 接口。
  • Accept:告知服务器客户端希望接收的数据格式。如 Accept: application/json 表示期望返回 JSON 格式数据。
  • Authorization:Authorization:用于认证,携带访问令牌或账号信息,表明客户端有权限访问资源。常见的值有Bearer <token>(JWT 或 OAuth 授权)和Basic <base64(username:password)>(基础认证)。
  • User-Agent:标识客户端的类型和操作系统信息,服务器可据此做兼容性处理。
  • Referer:告知服务器当前请求是从哪个页面跳转过来的,常用于防盗链或统计来源。
  • Cookie:Cookie:携带客户端的 Cookie 信息,保持用户会话状态。
  • Accept-Language:指定客户端希望接收的语言,用于国际化。如Accept-Language:zh-CN,zh;q=0.9,en;q=0.8表示优先接收中文,其次是英文。
  • Host:指定目标服务器的域名,在虚拟主机环境中用于区分不同服务。
  • Cors:标识请求的来源域名,用于 CORS 跨域资源共享验证。

响应头

服务器向客户端返回的信息

  • Date:响应的日期时间,格式为Day, DD Mon YYYY HH:mm:ss GMT

  • Server:服务器的软件信息,用于标识服务器类型。例如:nginx/1.18.0Apache/2.4.46IIS/10.0等。

  • Content-Type:响应体的 MIME 类型和编码格式,是解析响应体的关键,常用值为text/htmlapplication/jsonimage/jpeg等。

  • Content-Encoding:响应体的压缩算法,客户端需先解压才能解析,常用值为gzipdeflatebr等。

  • Cache-Control:指定响应的缓存控制,常用值为no-cacheno-storemax-age等。

  • Expires:指定响应的过期时间,格式为Day, DD Mon YYYY HH:mm:ss GMT

  • ETag:资源的唯一标识(如哈希值),用于验证资源是否修改。

  • Access-Control-Allow-Origin: 允许的来源域名,用于 CORS 跨域资源共享验证。

  • Set-Cookie:服务器向客户端设置 Cookie,包含键值、过期时间、域名等信息

状态码

1xx(信息性状态码):请求已接收,继续处理

  • 100 Continue:服务器已接收请求头,客户端可继续发送请求体(常用于 POST 大数据时的确认)。
  • 101 Switching Protocols:服务器同意客户端的协议切换请求(如从 HTTP 切换到 WebSocket)。- 102 Processing:服务器正在处理请求,但尚未完成(常用于异步处理场景)。

2xx(成功状态码):请求已成功处理

  • 200:请求成功

3xx(重定向状态码):请求需要进一步处理

  • 301:永久重定向
  • 302:临时重定向

4xx(客户端错误状态码):请求包含错误语法或无法完成请求

  • 400:请求错误
  • 401:未授权
  • 403:禁止访问
  • 404:未找到

5xx(服务器错误状态码):服务器处理请求出错

  • 500:服务器错误
  • 501:未实现
  • 502:网关错误
  • 503:服务不可用
  • 504:网关超时
  • 505:HTTP 版本不支持