HTTP头字段

HTTP头字段（）是指在超文本传输协议（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个头字段。

请求字段

常见的非标准请求字段

回应字段

常见的非标准回应字段

参见 
 cookie

参考文献

外部链接 
 Headers: Permanent Message Header Field Names
 RFC 6638: 废除给非标准参数加上前缀 X-
 RFC 7230: Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing
 RFC 7231: Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content
 RFC 7232: Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests
 RFC 7233: Hypertext Transfer Protocol (HTTP/1.1): Range Requests
 RFC 7234: Hypertext Transfer Protocol (HTTP/1.1): Caching
 RFC 7235: Hypertext Transfer Protocol (HTTP/1.1): Authentication
 RFC 2965: IETF HTTP State Management Mechanism RFC
 HTTP/1.1 headers from a web server point of view
 HTTP Request Header Viewer
 HTTP Response Header Viewer - Retrieves the HTTP response headers of any domain.
 Internet Explorer and Custom HTTP Headers - EricLaw's IEInternals - Site Home - MSDN Blogs
 crwlr.net - HTTP Header index
 HTTP Header with Privacyinfo - Display your HTTP request and response headers
HTTP