3.HTTP Headers的详细介绍

HTTP 消息头(有些地方称作HTTP报头)允许客户端和服务器通过 request response传递附加信息。一个请求头由名称(不区分大小写)后跟一个冒号“:”,冒号后跟具体的值(不带换行符)组成。该值前面的引导空白会被忽略。

自定专用消息头可通过’X-‘ 前缀来添加;但是这种用法被IETF在2012年6月发布的 RFC5548 中明确弃用,原因是其会在非标准字段成为标准时造成不便;其他的消息头在 IANA 注册表 中列出, 其原始内容在 RFC 4229 中定义。 此外,IANA 还维护着被提议的新HTTP 消息头注册表.

根据不同上下文,可将消息头分为:

  • General headers: 同时适用于请求和响应消息,但与最终消息主体中传输的数据无关的消息头。
  • Request headers: 包含更多有关要获取的资源或客户端本身信息的消息头。
  • Response headers: 包含有关响应的补充信息,如其位置或服务器本身(名称和版本等)的消息头。
  • Entity headers: 包含有关实体主体的更多信息,比如主体长(Content-Length)度或其MIME类型。

消息头也可以根据代理对其的处理方式分为:

端到端消息头

这类消息头必须被传输到最终的消息接收者,也即,请求的服务器或响应的客户端。中间的代理服务器必须转发未经修改的端到端消息头,并且必须缓存它们。

逐跳消息头

这类消息头仅对单次传输连接有意义,不能通过代理或缓存进行重新转发。这些消息头包括 ConnectionKeep-AliveProxy-AuthenticateProxy-AuthorizationTETrailerTransfer-Encoding 及 Upgrade。注意,只能使用 Connection 来设置逐跳一般头。

左侧导航栏提供了按字母顺序排列的列表,后面列清单描述了用途:

消息头描述示例
Accept用户代理期望的MIME 类型列表。Accept: text/html
Accept-CH 列出配置数据,服务器可据此来选择适当的响应。Accept-CH: DPR, Viewport-Width
Accept-Charset列出用户代理支持的字符编码。Accept-Charset: utf-8, iso-8859-1;q=0.5
Accept-Features
Accept-Encoding列出用户代理支持的压缩方法。Accept-Encoding: gzip
Accept-Encoding:compress
Accept-Encoding: deflate
Accept-Encoding: br
Accept-Encoding: identity
Accept-Encoding: *
Accept-Language列出用户代理期望的页面语言。Accept-Language: zh-CN,zh;q=0.8
Accept-Ranges代表区间单位Accept-Ranges: bytes
Access-Control-Allow-Credentials
Access-Control-Allow-OriginAccess-Control-Allow-Origin: https://developer.mozilla.org
Access-Control-Allow-Methods响应头指定一个或多个允许请求的方法Access-Control-Allow-Methods: POST, GET, OPTIONS
Access-Control-Allow-Headers
Access-Control-Max-AgeAccess-Control-Max-Age: 600
Access-Control-Expose-Headers
Access-Control-Request-MethodAccess-Control-Request-Method: POST
Access-Control-Request-Headers
Age
Allow
Alternates
Authorization被用于向服务器提供认证用户身份的凭证Authorization: Basic <credentials>
Cache-Control
ConnectionConnection: keep-alive
Content-EncodingContent-Encoding: gzip Content-Encoding: compress Content-Encoding: deflate Content-Encoding: br
Content-LanguageContent-Language: de-DE, en-CA
Content-Length告诉服务器报文实体部分的大小,以字节为单位Content-Length: 18
Content-LocationContent-Location: /documents/foo.xml
Content-MD5
Content-Range
Content-Security-Policy控制用户代理在一个页面上可以加载使用的资源。Content-Security-Policy: default-src https:
Content-Type指示服务器文档的MIME 类型。帮助用户代理(浏览器)去处理接收到的数据。Content-Type: multipart/form-data; boundary=something
Cookie存储的HTTP cookiesCookie: PHPSESSID=298zf09hf012fh2; csrftoken=u32t4o3tb3gg43; _gat=1
DNT设置该值为1, 表明用户明确退出任何形式的网上跟踪。
Date
ETag
Expect
Expires
From
HostHost: developer.mozilla.org
If-Match
If-Modified-Since
If-None-Match
If-Range
If-Unmodified-Since
Last-Event-ID给出服务器在先前HTTP连接上接收的最后事件的ID。用于同步文本/事件流。
Last-Modified
Link等同于HTML标签中的”link”,但它是在HTTP层上,给出一个与获取的资源相关的URL以及关系的种类。
LocationLocation响应头指示URL的页面重定向到何处。
Max-Forwards
Negotiate
OriginOrigin: http://developer.mozilla.org:80
Pragma
Proxy-Authenticate
Proxy-Authorization
Range
Referer(请注意,在HTTP / 0.9规范中引入的正交错误必须在协议的后续版本中保留)
Retry-After
Sec-Websocket-Extensions
Sec-Websocket-Key
Sec-Websocket-Origin
Sec-Websocket-Protocol
Sec-Websocket-Version
Server
Set-CookieSet-Cookie响应头用来服务器向客户端发送cookie。
Set-Cookie2已淘汰。
Strict-Transport-Security
TCN
TE
Trailer列出将在消息正文之后在尾部块中传输的头。这允许服务器计算一些值,如Content-MD5:在传输数据时。请注意,Trailer:标头不得列出Content-Length :, Trailer:或Transfer-Encoding:headers。
Transfer-Encoding
Upgrade
User-Agent一个特征字符串,用来让网络协议的对端来识别发起请求的用户代理软件的应用类型、操作系统、软件开发商以及版本号。Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36
Variant-Vary
Vary列出了用作Web服务器选择特定内容的条件的标头。此服务器对于高效和正确缓存发送的资源很重要。
Via
Warning
WWW-Authenticate定义了使用何种验证方式去获取对资源的连接。通常会和一个 401 Unauthorized 的响应一同被发送。
X-Content-Duration
X-Content-Security-Policy
X-DNSPrefetch-Control
X-Frame-Options
X-Requested-With通常在值为“XMLHttpRequest”时使用

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/basic/http/2196.html

(0)
上一篇 2020年10月3日 01:37
下一篇 2020年10月3日 20:23

相关推荐

  • 5.HTTP请求方法的介绍

    HTTP 定义了一组请求方法, 以表明要对给定资源执行的操作。指示针对给定资源要执行的期望动作. 虽然他们也可以是名词, 但这些请求方法有时被称为HTTP动词. 1.GET方法 请求一个指定资源的表示形式. 使用GET的请求应该只被用于获取数据. 2.HEAD方法 请求一个与GET请求的响应相同的响应,但没有…

    HTTP教程 2020年10月5日
    08300
  • 1.HTTP的一些简单介绍

    概述 HTTP 指的是超文本传输​​协议 (Hyper Text Transfer Protocol). HTTP 是一个用于传输超媒体文档(例如 HTML、CSS、JS、图片、视频等等)的应用层协议。 HTTP Client-Server模型 HTTP 遵循经典的客户端(Client)-服务端(Server)模型,客…

    HTTP教程 2020年10月1日
    01.4K0
  • 8.HTTP的三种状态管理:session-based、cookie-based、token-based

    http是无状态的,一次请求结束,连接断开,下次服务器再收到请求,它就不知道这个请求是哪个用户发过来的。当然它知道是哪个客户端ip地址发过来的,但是对于我们的应用来说,我们是靠用户来管理的,而不是靠客户端ip地址来管理的。所以对于我们的应用而言,它是需要有状态管理的,以便服务器能够准确的知道http请求是哪个用户发起的…

    HTTP教程 2021年12月8日
    01.4K0

发表回复

登录后才能评论