Http请求与响应--header头部字段
⽬录
前提:
项⽬开发中涉及到header头部字段的获取与设置,于是想了解并记录下http头部字段的知识以供后续补充与回顾。
头部字段全览:
⼀、常⽤标准请求头字段
    Accept             设置接受的内容类型
    Accept-Charset       设置接受的字符编码
    Accept-Encoding       设置接受的编码格式
    Accept-Datetime       设置接受的版本时间
    Accept-Language       设置接受的语⾔
    Authorization       设置HTTP⾝份验证的凭证
    Cache-Control       设置请求响应链上所有的缓存机制必须遵守的指令
    Connection          设置当前连接和hop-by-hop协议请求字段列表的控制选项
    Content-Length      设置请求体的字节长度
    Content-MD5          设置基于MD5算法对请求体内容进⾏Base64⼆进制编码
    Content-Type       设置请求体的MIME类型(适⽤POST和PUT请求)
    Cookie             设置服务器使⽤Set-Cookie发送的http cookie
    Date             设置消息发送的⽇期和时间
    Expect             标识客户端需要的特殊浏览器⾏为
    Forwarded          披露客户端通过http代理连接web服务的源信息
    From             设置发送请求的⽤户的email地址
    Host             设置服务器域名和TCP端⼝号,如果使⽤的是服务请求标准端⼝号,端⼝号可以省略
    If-Match          设置客户端的ETag,当时客户端ETag和服务器⽣成的ETag⼀致才执⾏,适⽤于更新⾃从上次更新之后没有改变的资源    If-Modified-Since      设置更新时间,从更新时间到服务端接受请求这段时间内如果资源没有改变,允许服务端返回304 Not Modified     If-None-Match       设置客户端ETag,如果和服务端接受请求⽣成的ETage相同,允许服务端返回304 Not Modified
    If-Range          设置客户端ETag,如果和服务端接受请求⽣成的ETage相同,返回缺失的实体部分;否则返回整个新的实体    If-Unmodified-Since    设置更新时间,只有从更新时间到服务端接受请求这段时间内实体没有改变,服务端才会发送响应
    Max-Forwards         限制代理或⽹关转发消息的次数
    Origin            标识跨域资源请求(请求服务端设置Access-Control-Allow-Origin响应字段)
    Pragma             设置特殊实现字段,可能会对请求响应链有多种影响
    Proxy-Authorization    为连接代理授权认证信息
    Range             请求部分实体,设置请求实体的字节数范围,具体可以参见HTTP/1.1中的Byte serving
    Referer            设置前⼀个页⾯的地址,并且前⼀个页⾯中的连接指向当前请求,意思就是如果当前请求是在A页⾯中发送的,那么referer                    页⾯的url地址(轶事:这个单词正确的拼法应该是"referrer",但是在很多规范中都拼成了"referer",所以这个单词也就成为    TE               设置⽤户代理期望接受的传输编码格式,和响应头中的Transfer-Encoding字段⼀样
    Upgrade            请求服务端升级协议
    User-Agent          ⽤户代理的字符串值
    Via               通知服务器代理请求
    Warning            实体可能会发⽣的问题的通⽤警告
⼆、常⽤⾮标准请求头字段
    X-Requested-With          标识Ajax请求,⼤部分js框架发送请求时都会设置它为XMLHttpRequest
    DNT             请求web应⽤禁⽤⽤户追踪
    X-Forwarded-For      ⼀个事实标准,⽤来标识客户端通过HTTP代理或者负载均衡器连接的web服务器的原始IP地址
    X-Forwarded-Host          ⼀个事实标准,⽤来标识客户端在HTTP请求头中请求的原始host,因为主机名或者反向代理的端⼝可能与处理请求的原始服务器不同    X-Forwarded-Proto     ⼀个事实标准,⽤来标识HTTP原始协议,因为反向代理或者负载均衡器和web服务器可能使⽤http,但是请求到反向代理使⽤的
    Front-End-Https      微软应⽤程序和负载均衡器使⽤的⾮标准header字段 Front-End-Https: on
网络上xml是什么意思    X-Http-Method-Override    请求web应⽤时,使⽤header字段中给定的⽅法(通常是put或者delete)覆盖请求中指定的⽅法(通常是post),如果⽤户代理或                  墙不⽀持直接使⽤put或者delete⽅法发送请求时,可以使⽤这个字段
    X-ATT-DeviceId            允许更简单的解析⽤户代理在AT&T设备上的MakeModel/Firmware
    X-Wap-Profile              设置描述当前连接设备的详细信息的xml⽂件在⽹络中的位置
    Proxy-Connection     早起HTTP版本中的⼀个误称,现在使⽤标准的connection字段
    X-UIDH           服务端深度包检测插⼊的⼀个唯⼀ID标识Verizon Wireless的客户
    X-Csrf-Token,X-CSRFToken,X-XSRF-TOKEN 防⽌跨站请求伪造
    X-Request-ID,X-Correlation-ID 标识客户端和服务端的HTTP请求
三、常⽤标准响应头
    Access-Control-Allow-Origin 指定哪些站点可以参与跨站资源共享
    Accept-Patch                指定服务器⽀持的补丁⽂档格式,适⽤于http的patch⽅法
    Accept-Ranges              服务器通过byte serving⽀持的部分内容范围类型
    Age                        对象在代理缓存中暂存的秒数
    Allow                      设置特定资源的有效⾏为,适⽤⽅法不被允许的http 405错误
    Alt-Svc                    服务器使⽤"Alt-Svc"(Alternative Servicesde的缩写)头标识资源可以通过不同的⽹络位置或者不同的⽹络协议获取
    Cache-Control              告诉服务端到客户端所有的缓存机制是否可以缓存这个对象,单位是秒
    Connection                  设置当前连接和hop-by-hop协议请求字段列表的控制选项
    Content-Disposition        告诉客户端弹出⼀个⽂件下载框,并且可以指定下载⽂件名
    Content-Encoding            设置数据使⽤的编码类型
    Content-Language            为封闭内容设置⾃然语⾔或者⽬标⽤户语⾔
    Content-Length              响应体的字节长度
    Content-Location            设置返回数据的另⼀个位置
    Content-MD5                设置基于MD5算法对响应体内容进⾏Base64⼆进制编码
    Content-Range              标识响应体内容属于完整消息体中的那⼀部分
    Content-Type                设置响应体的MIME类型
    Date                        设置消息发送的⽇期和时间
    ETag                        特定版本资源的标识符,通常是消息摘要
    Expires                    设置响应体的过期时间
    Last-Modified              设置请求对象最后⼀次的修改⽇期
    Link                        设置与其他资源的类型关系
    Location                    在重定向中或者创建新资源时使⽤
    P3P                        以P3P:CP="your_compact_policy"的格式设置⽀持P3P(Platform for Privacy Preferences Project)策略,
                ⼤部分浏览器没有完全⽀持P3P策略,许多站点设置假的策略内容欺骗⽀持P3P策略的浏览器以获取第三⽅cookie的授权    Pragma                      设置特殊实现字段,可能会对请求响应链有多种影响
    Proxy-Authenticate          设置访问代理的请求权限
    Public-Key-Pins            设置站点的授权TLS证书
    Refresh                    "重定向或者新资源创建时使⽤,在页⾯的头部有个扩展可以实现相似的功能,并且⼤部分浏览器都⽀持
    Retry-After                如果实体暂时不可⽤,可以设置这个值让客户端重试,可以使⽤时间段(单位是秒)或者HTTP时间
    Server                      服务器名称
    Set-Cookie                  设置HTTP Cookie
    Status                      设置HTTP响应状态
    Strict-Transport-Security  ⼀种HSTS策略通知HTTP客户端缓存HTTPS策略多长时间以及是否应⽤到⼦域
    Trailer                    标识给定的header字段将展⽰在后续的chunked编码的消息中
    Transfer-Encoding          设置传输实体的编码格式,⽬前⽀持的格式: chunked, compress, deflate, gzip, identity
    TSV Tracking Status Value,在响应中设置给DNT(do-not-track),可能的取值
       "!" — under construction
       "?" — dynamic
       "G" — gateway to multiple parties
       "N" — not tracking
       "N" — not tracking
       "T" — tracking
       "C" — tracking with consent
       "P" — tracking only if consented
       "D" — disregarding DNT
       "U" — updated
    Upgrade                      请求客户端升级协议
    Vary                        通知下级代理如何匹配未来的请求头已让其决定缓存的响应是否可⽤⽽不是重新从源主机请求新的    Via                          通知客户端代理,通过其要发送什么响应
    Warning                      实体可能会发⽣的问题的通⽤警告
    WWW-Authenticate            标识访问请求实体的⾝份验证⽅案
    X-Frame-Options              点击劫持保护:
       deny frame  中不渲染
       sameorigin  如果源不匹配不渲染
       allow-from  允许指定位置访问
       allowall    不标准,允许任意位置访问
 四、常⽤的⾮标准响应头 
    X-XSS-Protection              过滤跨站脚本
    Content-Security-Policy, X-Content-Security-Policy,X-WebKit-CSP 定义内容安全策略
    X-Content-Type-Options        唯⼀的取值是"",阻⽌IE在响应中嗅探定义的内容格式以外的其他MIME格式
    X-Powered-By                  指定⽀持web应⽤的技术
    X-UA-Compatible              推荐⾸选的渲染引擎来展⽰内容,通常向后兼容,也⽤于激活IE中内嵌chrome框架插件    X-Content-Duration            提供⾳视频的持续时间,单位是秒,只有Gecko内核浏览器⽀持
    Upgrade-Insecure-Requests    标识服务器是否可以处理HTTPS协议
    X-Request-ID,X-Correlation-ID 标识⼀个客户端和服务端的请求
来源:
Http头部字段解释:
Accept:
作⽤:
请求报⽂注明的请求端接收响应报⽂类型。
请求与响应类型不⼀致问题:
若http请求的accept与该请求的http响应的content-type不⼀致或不匹配,则会报406错误。⽆特定指⽰,
⼀般accept默认能接受所有类型数据,具体为accept:*/*表⽰。
a标签下的请求报⽂accept字段:
若使⽤html的<a>标签发送请求,则accept字段由浏览器设置,不同浏览器会设置不同的accept,不过基本都包含*/*。
值域:
text/html  :HTML格式
text/plain  :纯⽂本格式
text/xml    :XML格式
image/gif  :gif图⽚格式
image/jpeg  :jpg图⽚格式
image/png  :png图⽚格式
video/mpeg  :视频
vedio/quicktime  :视频
application/xhtml+xml :XHTML格式
application/xml      :XML数据格式
application/atom+xml  :Atom XML聚合格式
application/json      :JSON数据格式
application/pdf      :pdf格式
application/msword    :Word⽂档格式
application/octet-stream :⼆进制流数据(如常见的⽂件下载)
application/x-www-form-urlencoded : form表单数据默认的提交数据的格式,被编码为key:value格式
text/xml与application/xml区别:
两者功能⼀致,唯⼀区别在于编码的格式。
text/xml忽略xml头所指定的编码⽅式,⽽使⽤默认ascII编码⽅式(可以在Content-Type字段中指定编码:Content-Type: text/xml; charset="utf-8");application/xml会根据xml头的编码⽅式对xml进⾏编码。

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