返回
HTTP1.1头部速览——由内容传递伴随的首部导航
前端
2023-09-13 03:31:56
HTTP1.1 Headers:信息高速公路上的路标
HTTP,互联网世界的生命线,允许计算机通过数字高速公路相互连接。而 HTTP1.1 Headers 就像道路上的路标,为这些通信提供方向和信息,引导计算机准确无误地到达目的地。
HTTP1.1 Headers:分类指南
HTTP1.1 Headers 可分为两大类:
- 通用首部: 适用于所有类型的 HTTP 请求和响应。
- 请求/响应首部: 根据请求或响应的不同而有所区别。
通用首部:传递基本信息
通用首部提供有关报文(HTTP 请求或响应)的通用信息,包括:
- Date: 报文创建的日期和时间。
- MIME-Version: 报文发送方遵循的 MIME 版本。
- Trailer: 如果报文采用分块传输编码,则列出拖挂部分的首部集合。
- Transfer-Encoding: 指定报文主体的编码方式。
- Content-Type: 指定报文主体的媒体类型。
- Content-Length: 指定报文主体的长度。
- Host: 指定请求的资源位于哪台服务器上。
请求首部:客户端的愿望清单
请求首部由客户端发送,表示客户端的偏好和能力,包括:
- Accept: 指定客户端可以接受的媒体类型。
- Accept-Charset: 指定客户端可以接受的字符集。
- Accept-Encoding: 指定客户端可以接受的编码方式。
- Accept-Language: 指定客户端可以接受的语言。
- Authorization: 指定客户端的授权信息。
- Cache-Control: 指定客户端对缓存的控制指令。
- Connection: 指定客户端与服务器之间的连接方式。
- Cookie: 包含客户端发送给服务器的 Cookie 信息。
- Expect: 指定客户端对服务器的期望。
- From: 指定请求的发送者。
- If-Match: 指定客户端希望服务器与请求资源的 Etag 值匹配。
- If-Modified-Since: 指定客户端希望服务器与请求资源的最后修改时间匹配。
- If-None-Match: 指定客户端希望服务器与请求资源的 Etag 值不匹配。
- If-Range: 指定客户端希望服务器与请求资源的部分范围匹配。
- Max-Forwards: 指定请求可以被转发多少次。
- Proxy-Authorization: 指定客户端的代理授权信息。
- Range: 指定客户端希望服务器返回请求资源的某个范围。
- Referer: 指定请求的来源页面。
- TE: 指定客户端可以接受的传输编码方式。
- User-Agent: 指定客户端的浏览器信息。
响应首部:服务器的回复
响应首部由服务器发送,提供有关请求资源的信息,包括:
- Accept-Ranges: 指定服务器可以接受的字节范围。
- Age: 指定响应资源在服务器上缓存的时间。
- Cache-Control: 指定服务器对缓存的控制指令。
- Connection: 指定服务器与客户端之间的连接方式。
- Content-Encoding: 指定响应主体使用的编码方式。
- Content-Language: 指定响应主体的语言。
- Content-Length: 指定响应主体的长度。
- Content-Location: 指定响应资源的绝对 URI。
- Content-MD5: 指定响应主体的 MD5 哈希值。
- Content-Range: 指定响应主体的字节范围。
- Date: 指定响应创建的日期和时间。
- ETag: 指定响应资源的唯一标识符。
- Expires: 指定响应资源的过期时间。
- Last-Modified: 指定响应资源的最后修改时间。
- Location: 指定资源的新位置。
- Pragma: 指定服务器对缓存的请求指令。
- Proxy-Authenticate: 指定服务器的代理认证信息。
- Refresh: 指定客户端应该在指定的时间后重新加载页面。
- Retry-After: 指定客户端在指定的时间后重试请求。
- Server: 指定服务器的软件信息。
- Set-Cookie: 包含服务器发送给客户端的 Cookie 信息。
- Trailer: 如果报文采用分块传输编码,则列出拖挂部分的首部集合。
- Vary: 指定响应资源可能根据请求的不同而有所不同。
- Via: 指定请求或响应经过的代理服务器列表。
- Warning: 指定服务器发出的警告信息。
- WWW-Authenticate: 指定服务器的认证信息。
HTTP1.1 Headers 的重要性
HTTP1.1 Headers 在 HTTP 通信中起着至关重要的作用:
- 它们为客户端和服务器提供了一种共享信息、协商请求和响应的方式。
- 它们确保通信高效、可靠,并根据特定的需求进行定制。
- 它们是理解 HTTP 协议的关键,对于 Web 应用程序的开发和故障排除至关重要。
常见问题解答
1. 什么是 Etag?
- Etag 是一个唯一标识符,用于跟踪资源的修改。
2. 为什么需要 Content-Length 首部?
- Content-Length 允许客户端和服务器提前了解响应主体的长度,从而优化传输过程。
3. Cache-Control 首部如何运作?
- Cache-Control 首部允许客户端和服务器指定缓存规则,以提高性能并减少带宽使用。
4. 如何使用 If-Modified-Since 首部?
- If-Modified-Since 首部允许客户端仅在资源自上次请求以来发生修改时才请求资源。
5. Set-Cookie 首部有什么作用?
- Set-Cookie 首部允许服务器在客户端的浏览器中设置 Cookie,用于跟踪会话状态和个性化体验。