前端必备HTTP技能之HTTP请求头响应头中常用字段详解

前端必备HTTP技能之HTTP请求头响应头中常⽤字段详解
作为⼀名前端开发⼈员,肯定少不了要和⽹络打交道,因为要从服务器端拉取数据,从服务端获取数据最常⽤的⽅式还是通过HTTP请求。给服务器发请求的时候有请求头,接受服务器响应的时候有响应头,客户端和服务器端互相沟通需要的信息都是通过这些“头”来传送,这些信息是⼀些类似key:value的键值对。了解这些“头”中字段的含义对于理解整个请求过程有很⼤的帮助。这⾥列举了常⽤的“头”字段的解释以及例⼦,本⽂可以作为⼯具⽂收藏,以备需要时查看。
常⽤标准请求头字段>
Accept 设置接受的内容类型
Accept: text/plain
Accept-Charset 设置接受的字符编码
Accept-Charset: utf-8
Accept-Encoding 设置接受的编码格式
Accept-Encoding: gzip, deflate
Accept-Datetime 设置接受的版本时间
Accept-Datetime: Thu, 31 May 2007 20:35:00 GMT
Accept-Language 设置接受的语⾔
Accept-Language: en-US
Authorization 设置HTTP⾝份验证的凭证
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Cache-Control 设置请求响应链上所有的缓存机制必须遵守的指令
Cache-Control: no-cache
Connection 设置当前连接和hop-by-hop协议请求字段列表的控制选项
Connection: keep-alive
Connection: Upgrade
Content-Length 设置请求体的字节长度
Content-Length: 348
2012诺贝尔生理学奖Content-MD5 设置基于MD5算法对请求体内容进⾏Base64⼆进制编码
Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ==
Content-Type 设置请求体的MIME类型(适⽤POST和PUT请求)
Content-Type: application/x-www-form-urlencoded
Cookie 设置服务器使⽤Set-Cookie发送的http cookie
Cookie: $Version=1; Skin=new;
Date 设置消息发送的⽇期和时间
Date: Tue, 15 Nov 1994 08:12:31 GMT
Expect 标识客户端需要的特殊浏览器⾏为
Expect: 100-continue
Forwarded 披露客户端通过http代理连接web服务的源信息
Forwarded: for=192.0.2.60;proto=http;by=203.0.113.43
Forwarded: for=192.0.2.43, for=198.51.100.17吉林财经大学信息经济学院
From 设置发送请求的⽤户的email地址
From: user@example
Host 设置服务器域名和TCP端⼝号,如果使⽤的是服务请求标准端⼝号,端⼝号可以省略
Host: :8080
Host:
If-Match 设置客户端的ETag,当时客户端ETag和服务器⽣成的ETag⼀致才执⾏,适⽤于更新⾃从上次更新之后没有改变的资源
If-Match: "737060cd8c284d8af7ad3082f209582d
If-Modified-Since 设置更新时间,从更新时间到服务端接受请求这段时间内如果资源没有改变,允许服务端返回304 Not Modified
If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT
If-None-Match 设置客户端ETag,如果和服务端接受请求⽣成的ETage相同,允许服务端返回304 Not Modified
If-None-Match: "737060cd8c284d8af7ad3082f209582d"
If-Range 设置客户端ETag,如果和服务端接受请求⽣成的ETage相同,返回缺失的实体部分;否则返回整个新的实体
冯.卡门If-Range: "737060cd8c284d8af7ad3082f209582d"
If-Unmodified-Since 设置更新时间,只有从更新时间到服务端接受请求这段时间内实体没有改变,服务端才会发送响应
If-Unmodified-Since: Sat, 29 Oct 1994 19:43:31 GMT
Max-Forwards 限制代理或⽹关转发消息的次数
哑终端
Max-Forwards: 10
Origin 标识跨域资源请求(请求服务端设置Access-Control-Allow-Origin响应字段)
Origin: ample-social-network
Pragma 设置特殊实现字段,可能会对请求响应链有多种影响
Pragma: no-cache
Proxy-Authorization 为连接代理授权认证信息
Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Range 请求部分实体,设置请求实体的字节数范围,具体可以参见HTTP/1.1中的Byte serving
Range: bytes=500-999
Referer 设置前⼀个页⾯的地址,并且前⼀个页⾯中的连接指向当前请求,意思就是如果当前请求是在A页⾯中发送的,那么referer就是A 页⾯的url地址(轶事:这个单词正确的拼法应该是"referrer",但是在很多规范中都拼成了"referer",所以这个单词也就成为标准⽤法)
Referer: /wiki/Main_Page
TE 设置⽤户代理期望接受的传输编码格式,和响应头中的Transfer-Encoding字段⼀样
TE: trailers, deflate
Upgrade 请求服务端升级协议
Upgrade: HTTP/2.0, HTTPS/1.3, IRC/6.9, RTA/x11, websocket
User-Agent ⽤户代理的字符串值
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/21.0
Via 通知服务器代理请求
Via: 1.0 fred, 1.1 example (Apache/1.1)
Warning 实体可能会发⽣的问题的通⽤警告
Warning: 199 Miscellaneous warning
常⽤⾮标准请求头字段
X-Requested-With 标识Ajax请求,⼤部分js框架发送请求时都会设置它为XMLHttpRequest
X-Requested-With: XMLHttpRequest
DNT 请求web应⽤禁⽤⽤户追踪
试题研究
DNT: 1 (Do Not Track Enabled)
DNT: 0 (Do Not Track Disabled)
赫冀成X-Forwarded-For ⼀个事实标准,⽤来标识客户端通过HTTP代理或者负载均衡器连接的web服务器的原始IP地址
X-Forwarded-For: client1, proxy1, proxy2
X-Forwarded-For: 129.78.138.66, 129.78.64.103
X-Forwarded-Host ⼀个事实标准,⽤来标识客户端在HTTP请求头中请求的原始host,因为主机名或者反向代理的端⼝可能与处理请求的原始服务器不同
X-Forwarded-Host: :8080
X-Forwarded-Host:
X-Forwarded-Proto ⼀个事实标准,⽤来标识HTTP原始协议,因为反向代理或者负载均衡器和web服务器可能使⽤http,但是请求到反向代理使⽤的是https
X-Forwarded-Proto: https
Front-End-Https 微软应⽤程序和负载均衡器使⽤的⾮标准header字段 Front-End-Https: on
X-Http-Method-Override 请求web应⽤时,使⽤header字段中给定的⽅法(通常是put或者delete)覆盖请求中指定的⽅法(通常是post),如果⽤户代理或者防⽕墙不⽀持直接使⽤put或者delete⽅法发送请求时,可以使⽤这个字段
X-HTTP-Method-Override: DELETE
X-ATT-DeviceId 允许更简单的解析⽤户代理在AT&T设备上的MakeModel/Firmware
X-Att-Deviceid: GT-P7320/P7320XXLPG
X-Wap-Profile 设置描述当前连接设备的详细信息的xml⽂件在⽹络中的位置
x-wap-profile: wap.samsungmobile/l
Proxy-Connection 早起HTTP版本中的⼀个误称,现在使⽤标准的connection字段
Proxy-Connection: keep-alive
X-UIDH 服务端深度包检测插⼊的⼀个唯⼀ID标识Verizon Wireless的客户
X-UIDH: ...
X-Csrf-Token,X-CSRFToken,X-XSRF-TOKEN 防⽌跨站请求伪造
X-Csrf-Token: i8XNjC4b8KVok4uw5RftR38Wgp2BFwql
X-Request-ID,X-Correlation-ID 标识客户端和服务端的HTTP请求
X-Request-ID: f058ebd6-02f7-4d3f-942e-904344e8cde5
常⽤标准响应头字段
Access-Control-Allow-Origin 指定哪些站点可以参与跨站资源共享
Access-Control-Allow-Origin: *
Accept-Patch 指定服务器⽀持的补丁⽂档格式,适⽤于http的patch⽅法
Accept-Patch: text/example;charset=utf-8
Accept-Ranges 服务器通过byte serving⽀持的部分内容范围类型
Accept-Ranges: bytes
Age 对象在代理缓存中暂存的秒数
Age: 12
Allow 设置特定资源的有效⾏为,适⽤⽅法不被允许的http 405错误
Allow: GET, HEAD
Alt-Svc 服务器使⽤"Alt-Svc"(Alternative Servicesde的缩写)头标识资源可以通过不同的⽹络位置或者不同的⽹络协议获取Alt-Svc: h2="ample:443"; ma=7200
Cache-Control 告诉服务端到客户端所有的缓存机制是否可以缓存这个对象,单位是秒
Cache-Control: max-age=3600
Connection 设置当前连接和hop-by-hop协议请求字段列表的控制选项
Connection: close
Content-Disposition 告诉客户端弹出⼀个⽂件下载框,并且可以指定下载⽂件名
Content-Disposition: attachment; filename=""
Content-Encoding 设置数据使⽤的编码类型
Content-Encoding: gzip
Content-Language 为封闭内容设置⾃然语⾔或者⽬标⽤户语⾔
Content-Language: en
Content-Length 响应体的字节长度
Content-Length: 348
Content-Location 设置返回数据的另⼀个位置
Content-Location: /index.htm
Content-MD5 设置基于MD5算法对响应体内容进⾏Base64⼆进制编码
Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ==
Content-Range 标识响应体内容属于完整消息体中的那⼀部分
Content-Range: bytes 21010-47021/47022
Content-Type 设置响应体的MIME类型
Content-Type: text/html; charset=utf-8
Date 设置消息发送的⽇期和时间
Date: Tue, 15 Nov 1994 08:12:31 GMT
ETag 特定版本资源的标识符,通常是消息摘要
ETag: "737060cd8c284d8af7ad3082f209582d"
Expires 设置响应体的过期时间
Expires: Thu, 01 Dec 1994 16:00:00 GMT
Last-Modified 设置请求对象最后⼀次的修改⽇期
Last-Modified: Tue, 15 Nov 1994 12:45:26 GMT
Link 设置与其他资源的类型关系
Link: </feed>; rel="alternate"
Location 在重定向中或者创建新资源时使⽤
Location: /pub/WWW/People.html
P3P 以P3P:CP="your_compact_policy"的格式设置⽀持P3P(Platform for Privacy Preferences Project)
策略,⼤部分浏览器没有完全⽀持P3P策略,许多站点设置假的策略内容欺骗⽀持P3P策略的浏览器以获取第三⽅cookie的授权
P3P: CP="This is not a P3P policy! See le/support/accounts/bin/answer.py?hl=en&answer=151657 for more info."
Pragma 设置特殊实现字段,可能会对请求响应链有多种影响
Pragma: no-cache
Proxy-Authenticate 设置访问代理的请求权限
Proxy-Authenticate: Basic
Public-Key-Pins 设置站点的授权TLS证书
Public-Key-Pins: max-age=2592000; pin-sha256="E9CZ9INDbd+2eRQozYqqbQ2yXLVKB9+xcprMF+44U1g=";
Refresh "重定向或者新资源创建时使⽤,在页⾯的头部有个扩展可以实现相似的功能,并且⼤部分浏览器都⽀持
<meta http-equiv="refresh" content="5; url=example/">
Refresh: 5; url=/pub/WWW/People.html
Retry-After 如果实体暂时不可⽤,可以设置这个值让客户端重试,可以使⽤时间段(单位是秒)或者HTTP时间
Example 1: Retry-After: 120
Example 2: Retry-After: Fri, 07 Nov 2014 23:59:59 GMT
Server 服务器名称
Server: Apache/2.4.1 (Unix)

本文发布于:2024-09-23 02:23:06,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/138474.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:请求   设置   代理   服务端
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议