返回

信息时代的前线:解读 HTTP 首部

前端

HTTP,即超文本传输协议,是用于在万维网上获取资源的协议。HTTP 请求报文是客户端向服务器发送的请求消息,HTTP 响应报文是服务器向客户端发送的响应消息。HTTP 首部字段根据实际用途被分为四种类型:通用首部字段、请求首部字段、响应首部字段和实体首部字段。

通用首部字段用于请求或响应报文本身,最常见的通用首部字段有:

  • Cache-Control:用于控制缓存行为。
  • Connection:用于控制连接行为。
  • Date:用于表示报文发送的日期和时间。
  • Pragma:用于提供关于请求或响应的指导。
  • Trailer:用于指示报文中是否存在尾部字段。
  • Transfer-Encoding:用于指定报文主体的传输编码。
  • Upgrade:用于升级到其他协议。
  • Via:用于跟踪请求或响应报文经过的代理服务器。
  • Warning:用于警告接收者潜在的问题。

请求首部字段用于客户端请求的信息,最常见的请求首部字段有:

  • Accept:用于指定客户端能够接受的媒体类型。
  • Accept-Charset:用于指定客户端能够接受的字符集。
  • Accept-Encoding:用于指定客户端能够接受的编码方式。
  • Accept-Language:用于指定客户端能够接受的语言。
  • Authorization:用于对请求进行授权。
  • Content-Length:用于指定请求主体的大小。
  • Content-Type:用于指定请求主体的媒体类型。
  • Host:用于指定请求的资源位于哪个主机上。
  • If-Match:用于指定客户端只希望在服务器上的资源与客户端发送的资源相匹配时才进行操作。
  • If-Modified-Since:用于指定客户端只希望在服务器上的资源自上次修改以来未被修改时才进行操作。
  • If-None-Match:用于指定客户端只希望在服务器上的资源与客户端发送的资源不匹配时才进行操作。
  • If-Range:用于指定客户端只希望在服务器上的资源的部分范围与客户端发送的范围相匹配时才进行操作。
  • Range:用于指定客户端希望从服务器上的资源获取的部分范围。
  • User-Agent:用于指定客户端的软件信息。

响应首部字段用于描述服务器响应的信息,最常见的响应首部字段有:

  • Accept-Ranges:用于指定服务器能够接受的请求范围。
  • Age:用于指定资源自上次修改以来经过的时间。
  • Content-Encoding:用于指定响应主体的编码方式。
  • Content-Language:用于指定响应主体的语言。
  • Content-Length:用于指定响应主体的大小。
  • Content-Location:用于指定响应主体的位置。
  • Content-MD5:用于指定响应主体的 MD5 校验和。
  • Content-Range:用于指定响应主体的一部分范围。
  • Content-Type:用于指定响应主体的媒体类型。
  • Date:用于表示报文发送的日期和时间。
  • ETag:用于指定资源的实体标记。
  • Expires:用于指定资源的过期时间。
  • Last-Modified:用于指定资源的最后修改时间。
  • Location:用于指定资源的当前位置。
  • Pragma:用于提供关于响应的指导。
  • Refresh:用于指定客户端应该在一段时间后重新加载资源。
  • Retry-After:用于指定客户端应该在一段时间后重新尝试请求。
  • Server:用于指定服务器的软件信息。
  • Set-Cookie:用于在客户端设置 cookie。
  • Trailer:用于指示报文中是否存在尾部字段。
  • Vary:用于指定响应随请求头部的变化而变化。
  • WWW-Authenticate:用于对请求进行身份验证。

实体首部字段用于描述请求或响应主体的元信息,最常见的实体首部字段有:

  • Content-Disposition:用于指定响应主体的处置方式。
  • Content-Encoding:用于指定响应主体的编码方式。
  • Content-Language:用于指定响应主体的语言。
  • Content-Length:用于指定响应主体的大小。
  • Content-Location:用于指定响应主体的位置。
  • Content-MD5:用于指定响应主体的 MD5 校验和。
  • Content-Range:用于指定响应主体的一部分范围。
  • Content-Type:用于指定响应主体的媒体类型。
  • Expires:用于指定资源的过期时间。
  • Last-Modified:用于指定资源的最后修改时间。