Http请求与响应--header头部字段

目录

目录

前提:

头部字段全览:

Http头部字段解释:

Accept:

作用:

请求与响应类型不一致问题:

a标签下的请求报文accept字段:

值域:

text/xml与application/xml区别:

HTTPS作用:


前提:

项目开发中涉及到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就是A

                     页面的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,但是请求到反向代理使用的是https

    Front-End-Https         微软应用程序和负载均衡器使用的非标准header字段 Front-End-Https: on
    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

       "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头部字段总结 

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进行编码。

HTTPS作用:

  • 加密传输:在HTTP与传输层间加了ssl加密层,在网络中实现加密传输,针对整个http报文进行加密(包括其中的url)
  •  防范中间人攻击:通过CA机构颁布的CA证书验证服务器端是否可信。
  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浅尝即止何来突破

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值