跳到主要内容

请求头部字段

2025年03月01日
柏拉文
越努力,越幸运

一、Accept


1.1 认识

Accept 指定客户端能够接收的内容类型。可选值为: text/plaintext/html

1.2 语法

Accept: text/plain, text/html

二、Accept-Charset


2.1 认识

Accept-Charset 浏览器可以接受的字符编码集。可选值为: iso-8859-5

2.2 语法

Accept-Charset: iso-8859-5

三、Accept-Encoding


3.1 认识

Accept-Encoding 指定浏览器可以支持的web服务器返回内容压缩编码类型。可选值为: compressgzip

3.2 语法

Accept-Encoding: compress, gzip

四、Accept-Language


4.1 认识

Accept-Language 浏览器可接受的语言。可选值为: enzh

4.2 语法

Accept-Language: en,zh

五、Accept-Ranges


5.1 认识

Accept-Ranges 可以请求网页实体的一个或者多个子范围字段。可选值为: bytes

5.2 语法

Accept-Ranges: bytes

六、Authorization


6.1 认识

Authorization HTTP授权的授权证书。可选值为: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

6.2 语法

Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

七、Cache-Control


7.1 认识

Cache-Control 指定请求和响应遵循的缓存机制。可选值为: no-cache

7.2 语法

Cache-Control: no-cache

八、Connection


8.1 认识

Connection 表示是否需要持久连接。(HTTP 1.1默认进行持久连接)。可选值为: close

8.2 语法

Connection: close

九、Cookie


9.1 认识

Cookie HTTP请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器。可选值为: $Version=1; Skin=new;

9.2 语法

Cookie: $Version=1; Skin=new;

十、Content-Length


10.1 认识

Content-Length 请求的内容长度。可选值为: 348

10.2 语法

Content-Length: 348

十一、Content-Type


11.1 认识

Content-Type 请求的与实体对应的MIME信息。可选值为: application/x-www-form-urlencodedapplication/jsontext/htmltext/plainvideo/avivideo/mpeg4image/jpegimage/png

11.2 语法

Content-Type: <media-type>; <charset>; <boundary>
  • media-type: 资源或数据的 MIME 类型。MIME 类型通常仅包含两个部分: 类型(type子类型(subtype,中间由斜杠 / 分割,中间没有空白字符

    type/subtype
  • charset: 字符编码标准。不区分大小写,推荐使用小写。

  • boundary: 对于多部分实体,必须使用 boundary 指令。该指令由 170 个字符组成,这些字符选自一套已知能通过电子邮件网关的、非常健壮的字符集(并且不以空白字符结束)。它用于封装信息多个部分的边界。通常情况下,开头的边界前会加上两个破折号,而末尾边界的后面也会加上两个破折号。

11.3 MIME

Font 格式

JSON 格式

  • application/json

  • application/scim+json

  • application/csp-report

  • application/vnd.api+json

  • application/reports+json

  • application/json-patch+json

  • application/x-www-form-urlencoded

Text 格式:

  • text/css

  • text/xml

  • text/html

  • text/plain

  • text/javascript

Model 格式

Audio 格式

  • audio/webm

  • audio/ogg

Video 格式

  • video/webm

  • video/ogg

Image 格式:

  • image/apng

  • image/avif

  • image/gif

  • image/jpeg

  • image/png

  • image/svg+xml

  • image/webp

Message 格式

Multipart 格式

  • multipart/form-data: multipart/form-data 可用于 HTML 表单从浏览器发送信息给服务器。

  • multipart/byteranges: 用于把部分的响应报文发送回浏览器。

十二、Date


12.1 认识

Date 请求发送的日期和时间。可选值为: Tue, 15 Nov 2010 08:12:31 GMT

12.2 语法

Date: Tue, 15 Nov 2010 08:12:31 GMT

十三、Expect


13.1 认识

Expect 请求的特定的服务器行为。可选值为: 100-continue

13.2 语法

Expect: 100-continue

十四、From


14.1 认识

From 发出请求的用户的Email。可选值为: user@email.com

14.2 语法

From: user@email.com

十五、Host


15.1 认识

Host 指定请求的服务器的域名和端口号。可选值为: www.zcmhi.com

15.2 语法

Host: www.zcmhi.com

15.3 对比

  • Host:

  • Origin: 表示当前客户端页面地址

    • 格式: 协议+域名+端口
    • 应用场景: 用于Cors请求和同域POST请求
    • 携带情况:
      • 302 重定向不会携带Origin
      • 同域请求只有post请求才会携带Origin
      • 跨域请求都会携带Origin,无论是get请求还是post请求
  • Referer: 表示当前客户端页面地址

    • 格式: 协议+域名+端口号+路径+参数
    • 特点: Referer 可以隐藏,甚至可以修改
    • 应用场景: 服务端一般使用Referer首部识别访问来源,可能会以此进行防盗链、统计分析、日志记录以及缓存优化等
    • 携带情况:
      • 来源页面协议为File或者Data URI(如页面从本地打开的) 不会携带 Referer
      • 来源页面是Https,而目标URL是http 不会携带 Referer
      • 浏览器地址栏直接输入网址访问,或者通过浏览器的书签直接访问 不会携带 Referer
      • 使用JS的location.href跳转 不会携带 Referer

十六、If-Match


16.1 认识

If-Match 只有请求内容与实体相匹配才有效。可选值为: “737060cd8c284d8af7ad3082f209582d”

16.2 语法

If-Match: “737060cd8c284d8af7ad3082f209582d”

十七、If-Modified-Since


17.1 认识

If-Modified-Since 如果请求的部分在指定时间之后被修改则请求成功,未被修改则返回304代码。可选值为: Sat, 29 Oct 2010 19:43:31 GMT

17.2 语法

If-Modified-Since: Sat, 29 Oct 2010 19:43:31 GMT

十八、If-None-Match


18.1 认识

If-None-Match 如果内容未改变返回304代码,参数为服务器先前发送的Etag,与服务器回应的Etag比较判断是否改变。可选值为: “737060cd8c284d8af7ad3082f209582d”

18.2 语法

If-None-Match: “737060cd8c284d8af7ad3082f209582d”

十九、If-Range


19.1 认识

If-Range 如果实体未改变,服务器发送客户端丢失的部分,否则发送整个实体。参数也为Etag。可选值为: “737060cd8c284d8af7ad3082f209582d”

19.2 语法

If-Range: “737060cd8c284d8af7ad3082f209582d”

二十、If-Unmodified-Since


20.1 认识

If-Unmodified-Since 只在实体在指定时间之后未被修改才请求成功。可选值为: Sat, 29 Oct 2010 19:43:31 GMT

20.2 语法

If-Unmodified-Since: Sat, 29 Oct 2010 19:43:31 GMT

二十一、Max-Forwards


21.1 认识

Max-Forwards 限制信息通过代理和网关传送的时间。可选值为: 10

21.2 语法

Max-Forwards: 10

二十二、Pragma


22.1 认识

Pragma 用来包含实现特定的指令。可选值为: no-cache

22.2 语法

Pragma: no-cache

二十三、Proxy-Authorization


23.1 认识

Proxy-Authorization 连接到代理的授权证书。可选值为: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

23.2 语法

Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

二十四、Range


24.1 认识

Range 只请求实体的一部分,指定范围。可选值为: bytes=500-999

24.2 语法

Range: bytes=500-999

二十五、Referer


25.1 认识

Referer 先前网页的地址,当前请求网页紧随其后,即来路。可选值为: http://www.zcmhi.com/archives/71.html

25.2 语法

Referer: http://www.zcmhi.com/archives/71.html

二十六、TE


26.1 认识

TE 客户端愿意接受的传输编码,并通知服务器接受接受尾加头信息。可选值为: trailersdeflate;q=0.5

26.2 语法

TE: trailers,deflate;q=0.5

二十七、Upgrade


27.1 认识

Upgrade 向服务器指定某种传输协议以便服务器进行转换(如果支持)。可选值为: HTTP/2.0SHTTP/1.3IRC/6.9RTA/x11

27.2 语法

Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11

二十八、User-Agent


28.1 认识

User-Agent 的内容包含发出请求的用户信息。可选值为: Mozilla/5.0 (Linux; X11)

28.2 语法

User-Agent: Mozilla/5.0 (Linux; X11)

二十九、Via


29.1 认识

Via 通知中间网关或代理服务器地址,通信协议。可选值为: 1.0 fred1.1 nowhere.com (Apache/1.1

29.2 语法

Via: 1.0 fred, 1.1 nowhere.com (Apache/1.1)

三十、Warning


30.1 认识

Warning 关于消息实体的警告信息。可选值为: 199 Miscellaneous warning

30.2 语法

Warn: 199 Miscellaneous warning

三十一、Referrer-Policy


31.1 认识

31.2 语法

31.3 策略

Referrer-Policy策略

  1. no-referrer: 任何情况下都不发送 Referrer 信息

  2. no-referrer-when-downgrade: 仅当发生协议降级时不发送 Referrer 信息(如 HTTPS 页面引入 HTTP 资源,从 HTTPS 页面跳到 HTTP 等)时不发送 Referrer 信息。这个规则是现在大部分浏览器默认所采用的

  3. origin: 发送只包含 host 部分的 Referrer。启用这个规则,无论是否发生协议降级,无论是本站链接还是站外链接,都会发送 Referrer 信息,但是只包含协议+ host 部分(不包含具体的路径及参数等信息)。

  4. origin-when-crossorigin: 仅在发生跨域访问时发送只包含 hostReferrer,同域下还是完整的。它与 Origin Only 的区别是多判断了是否Cross-origin。需要注意的是协议、域名和端口都一致,才会被浏览器认为是同域;

  5. unsafe-url: 无论是否发生协议降级,无论是本站链接还是站外链接,统统都发送 Referrer 信息。正如其名,这是最宽松而最不安全的策略;

应用 Referrer-Policy 策略

  1. 服务端对Referrer的控制
ctx.set("Referrer-Policy","no-referrer")
  1. Nginx对Referer的控制
add_header  Referrer-Policy  "origin-when-crossorigin";
add_header 'Referrer-Policy' 'origin';
add_header 'Referrer-Policy' 'unsafe-url';
  1. 页面中meta标签属性控制
<meta name="referrer" content="no-referrer">
<meta name="referrer" content="no-referrer-when-downgrade">
<meta name="referrer" content="origin">
  1. a标签单独设置指定Referer策略
<a href="#url" referrerpolicy="no-referrer|origin|unsafe-url">...</a>