请求
-
请求行(Request Line):
- 方法:HTTP 动作,如 GET、POST、PUT、DELETE 等。
-
路径:请求的资源路径(包括查询字符串)。
- 查询参数(Query Parameters):键值对 ,附加在 URL 中,用于向服务器传递额外信息(如
?key=value
) - 路径和域名
路径:请求的资源路径。
域名:请求的目标主机名(通常在 Host 头部字段中指定)。
比如 完整的URL: http://example.com/path/resource?query=value&key=value2
请求 URI(Request-URI):/path/resource?query=value&key=value2
路径:/path/resource
查询参数:query=value&key=value2
域名(Domain)example.com
- 查询参数(Query Parameters):键值对 ,附加在 URL 中,用于向服务器传递额外信息(如
- HTTP 版本:如 HTTP/1.1 或 HTTP/2。
-
请求体(Body):
- 格式:可能包括 JSON、XML、表单数据、文件等。
-
Headers:
- Host:目标主机名(通常自动添加)。
- Content-Type:请求体的媒体类型。
- Content-Length:请求体的长度。
- Authorization:用于身份验证的凭据。
- Accept:客户端能处理的媒体类型。
- User-Agent:客户端的应用程序或浏览器信息。
-
Cookie:存储在浏览器中的数据,与请求一起发送。内容是键值对
所有符合条件的Cookies都会发送- 同源政策:只有与请求的域名和路径匹配的 cookies 会被发送。如果 cookies 设置了特定的域名或路径限制,则只有满足这些限制的 cookies 才会随请求发送。(跨域请求不会主动发送)
- 未过期的 cookies:只有未过期的 cookies 会被发送。如果 cookies 已过期,它们将不会被发送。
- 符合 Secure 和 SameSite 标志:
Secure:设置了 Secure 标志的 cookies 仅在 HTTPS 请求中发送。
SameSite:SameSite 属性控制 cookies 的跨站请求行为。它可以是 Strict(仅在同源请求中发送)、Lax(在某些跨站请求中发送)或 None(在所有请求中发送,需要 Secure 标志)。
HTTP 响应
响应行(Status Line)
- HTTP 版本:如 HTTP/1.1、HTTP/2。
- 状态码:表示响应的状态,如 200(成功)、404(未找到)、500(服务器错误)。
- 状态短语:与状态码相关的描述性文本,如 "OK"、"Not Found"、"Internal Server Error"。
响应头(Response Headers)
缓存控制相关
-
Cache-Control:控制缓存行为的指令(如
Cache-Control: no-cache
、Cache-Control: max-age=3600
)。 -
Expires:指定响应体的过期时间(如
Expires: Wed, 21 Oct 2024 07:28:00 GMT
)。 -
ETag:资源的唯一标识符,用于缓存验证(如
ETag: "abc123"
)。 -
Last-Modified:资源上次修改的时间,用于缓存验证(如
Last-Modified: Tue, 12 Sep 2024 08:00:00 GMT
)。 -
Vary:指示缓存机制应考虑哪些请求头(如
Vary: Accept-Encoding
)。
Cookie 相关
-
Set-Cookie:用于向客户端设置 cookies(如
Set-Cookie: sessionId=abc123; Path=/; HttpOnly
)。
内容相关
-
Content-Type:指示响应体的媒体类型(如
Content-Type: text/html
、Content-Type: application/json
)。 -
Content-Length:响应体的长度(以字节为单位,如
Content-Length: 1234
)。 -
Content-Encoding:指示响应体的编码方式(如
Content-Encoding: gzip
、Content-Encoding: deflate
)。 -
Content-Disposition:指示如何处理响应体(如
Content-Disposition: attachment; filename="file.txt"
)。
重定向相关 -
Location:指定重定向的目标 URL(如
Location: http://example.com/new-page
)。
服务器信息 -
Server:服务器软件的信息(如
Server: Apache/2.4.41 (Unix)
)。
跨源资源共享(CORS) -
Access-Control-Allow-Origin:指定允许哪些源访问资源(如
Access-Control-Allow-Origin: *
)。 -
Access-Control-Allow-Methods:指定允许的 HTTP 方法(如
Access-Control-Allow-Methods: GET, POST
)。 -
Access-Control-Allow-Headers:指定允许的请求头字段(如
Access-Control-Allow-Headers: Content-Type
)。
响应体(Response Body)
-
内容:服务器返回的实际数据,如 HTML、JSON、XML 或其他格式的内容。响应体的具体内容取决于
Content-Type
头部字段。