HTTP头字段(英语:HTTP header fields)是指在超文本传输协议(HTTP)的请求和响应消息中的消息头部分。它们定义了一个超文本传输协议事务中的操作参数。HTTP头部字段可以自己根据需要定义,因此可能在 Web 服务器和浏览器上发现非标准的头字段。
协议头的字段,是在请求(request)或响应(response)行(一条消息的第一行内容)之后传输的。协议头的字段是以明文的字符串格式传输,是以冒号分隔的键名与键值对,以回车(CR)加换行(LF)符号序列结尾。协议头部分的结尾以一个空白字段标识,结果就是,也就是传输两个连续的CR+LF。在历史上,很长的行曾经可能以多个短行的形式传输;在下一行的开头,输出一个空格(SP)或者一个水平制表符(HT),表示它是一个后续行。在如今,这种换行形式已经被废弃。
HTTP 头字段根据实际用途被分为以下 4 种类型:
在 RFC 7230、RFC 7231、RFC 7232、RFC 7233、RFC 7234 和 RFC 7235 中,对一组核心字段进行了标准化。有一份对于这些字段的官方的登记册,以及 一系列的补充规范 ,由互联网号码分配局(IANA)维护。各个应用程序也可以自行定义额外的字段名字及相应的值。头字段的永久登记表(页面存档备份,存于互联网档案馆)和临时登记表(页面存档备份,存于互联网档案馆)目前由IANA维护。其他的字段名称和允许的值可以由各应用程序定义。
按照惯例,非标准的协议头字段是在字段名称前加上X-
前缀来标识。但这一惯例已在2012年6月被废弃,因为按照这种惯例,非标准字段变成标准字段时会引起很多不方便之处。以前曾经有的使用Downgraded-
的限制也在2013年3月被解除。。
某些字段中可以包含注释内容(例如User-Agent、Server和Via字段中),这些注释内容可由应用程序忽略。
很多字段的值中可以包含带有权重的质量(quality,常被简称为Q)的键值对,指定的“重量”会在内容协商的过程中使用。
标准中没有对每个协议头字段的名称和值的大小设置任何限制,也没有限制字段的个数。然而,出于实际场景及安全性的考虑,大部分的服务器、客户端和代理软件都会实施一些限制。例如,Apache 2.3服务器在默认情况下限制每个字段的大小不得超过8190字节,同时,单个请求中最多有100个头字段。
Connection: Upgrade
自超文件传输协议版本1.1(HTTP/1.1)开始便是必需字段。
Host: zh.wikipedia.org
DNT: 0 (DNT被禁用)
X-Forwarded-For: 129.78.138.66, 129.78.64.103
X-Forwarded-Host: zh.wikipedia.org
Netscape实现的扩展,但大部分网页浏览器也支持。
常设
X-UA-Compatible: IE=edge
X-UA-Compatible: Chrome=1