HTTP响应头是指HTTP响应中包含的HTTP头部信息,用于向客户端提供与响应有关的元数据,包括响应的MIME类型、字符集、缓存策略、服务器类型等等。HTTP响应头可以帮助客户端更好地处理响应内容,以提高Web应用的性能和安全性。以下是HTTP响应头的详细介绍。
HTTP响应头格式
HTTP响应头位于HTTP响应报文的第一行之后,格式如下:
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1024
Cache-Control: no-cache
Connection: keep-alive
其中,第一行表示响应状态行,后面的行表示HTTP响应头。每一个HTTP响应头都由一个名称和一个值组成,名称和值之间用“:”分隔,值可以包含多个属性,每个属性之间用“;”分隔。
常用HTTP响应头
Content-Type
Content-Type是HTTP响应头中最常用的头部之一,用于指定响应内容的MIME类型,例如:
Content-Type: text/html
表示响应内容是HTML文本。常见的MIME类型有application/json、application/pdf、image/png等等。
Cache-Control
Cache-Control是用来指定缓存策略的HTTP响应头,例如:
Cache-Control: no-cache
表示禁用缓存。其他常用的Cache-Control指令还包括max-age、public、private、must-revalidate等等。
示例说明
下面是两个HTTP响应头的示例说明:
示例1:跨域请求
如下所示的响应头是为了允许跨域请求而设置的:
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET, OPTIONS
Access-Control-Allow-Headers: X-Requested-With, Content-Type
Access-Control-Max-Age: 86400
其中,Access-Control-Allow-Origin指定了允许哪些域名跨域,”*”表示允许任意域名跨域。Access-Control-Allow-Methods指定了允许跨域请求使用的HTTP方法。Access-Control-Allow-Headers指定了允许跨域请求携带哪些头部信息。Access-Control-Max-Age指定了浏览器对跨域OPTIONS请求的缓存时间。
示例2:Gzip压缩
如下所示的响应头是用来启用Gzip压缩的:
Content-Encoding: gzip
当客户端请求的Accept-Encoding中包含gzip时,服务器可以使用Gzip算法对响应内容进行压缩,然后将Content-Encoding设置为gzip,通知客户端进行解压缩。这样可以减小响应内容的大小,提高Web应用的性能。