OKHTTP系列(九)---http请求头(header)作用

前言

在项目开发中,网络请求是必不可少的 ,在http方面的知识学习也是不能拉下的,这里就做一波http请求头的记录。

Header:请求头个别参数和描述

Header解释示例
Accept指定客户端能够接收的内容类型Accept: text/plain, text/html,application/json
Accept-Charset浏览器可以接受的字符编码集。Accept-Charset: iso-8859-5
Accept-Encoding指定浏览器可以支持的web服务器返回内容压缩编码类型。Accept-Encoding: gzip, deflate, br
Accept-Language浏览器可接受的语言Accept-Language: zh-CN,zh;q=0.9
Accept-Ranges可以请求网页实体的一个或者多个子范围字段Accept-Ranges: bytes
AuthorizationHTTP授权的授权证书Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l
Cache-Control指定请求和响应遵循的缓存机制Cache-Control: no-cache
Connection表示是否需要持久连接。(HTTP 1.1默认进行持久连接)Connection: keep-alive
Connection: close
CookieHTTP请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器。

Cookie: PHPSESSID=298zf09hf012fh2;

 csrftoken=u32t4o3tb3gg43; _gat=1;

Content-Length实体报头指示该实体主体的大小,以字节为单位的十进制数,发送到接收方。Content-Length: 348
Content-Type请求的与实体对应的MIME信息Content-Type: text/html; charset=utf-8
Content-Type: multipart/form-data; boundary=something
Date请求发送的日期和时间Date: Wed, 21 Oct 2015 07:28:00 GMT 
Expect请求的特定的服务器行为Expect: 100-continue
From发出请求的用户的EmailFrom: webmaster@example.org
Host指定请求的服务器的域名和端口号指定请求的服务器的域名和端口号
If-Match只有请求内容与实体相匹配才有效If-Match: "bfc13a64729c4290ef5b2c2730249c88ca92d82d"

If-Match: W/"67ab43", "54ed21", "7892dd"

If-Match: *
If-Modified-Since如果请求的部分在指定时间之后被修改则请求成功,未被修改则返回304代码If-Modified-Since: Wed, 21 Oct 2015 07:28:00 GMT 
If-None-Match如果内容未改变返回304代码,参数为服务器先前发送的Etag,与服务器回应的Etag比较判断是否改变If-None-Match: "bfc13a64729c4290ef5b2c2730249c88ca92d82d"

If-None-Match: W/"67ab43", "54ed21", "7892dd"

If-None-Match: *
If-Range如果实体未改变,服务器发送客户端丢失的部分,否则发送整个实体。参数也为EtagIf-Range: Wed, 21 Oct 2015 07:28:00 GMT 
If-Unmodified-Since只在实体在指定时间之后未被修改才请求成功If-Unmodified-Since: Wed, 21 Oct 2015 07:28:00 GMT 
Pragma用来包含实现特定的指令Pragma: no-cache
Proxy-Authorization连接到代理的授权证书Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Range只请求实体的一部分,指定范围Range: bytes=200-1000, 2000-6576, 19000- 
Referer先前网页的地址,当前请求网页紧随其后,即来路Referer: https://developer.mozilla.org/en-US/docs/Web/JavaScript
TE客户端愿意接受的传输编码,并通知服务器接受接受尾加头信息TE: trailers, deflate;q=0.5
User-AgentUser-Agent的内容包含发出请求的用户信息Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) 
Mozilla/5.0 (Macintosh; Intel Mac OS X x.y; rv:42.0) 
Via通知中间网关或代理服务器地址,通信协议Via: 1.0 fred, 1.1 nowhere.com (Apache/1.1)
Warning关于消息实体的警告信息Warn: 199 Miscellaneous warning

请求头参数按类别汇总

Authentication

  • WWW-Authenticate:定义应该用于访问资源的身份验证方法。
  • Authorization:包含使用服务器验证用户代理的凭据。
  • Proxy-Authenticate:定义应该用来访问代理服务器后面资源的身份验证方法。
  • Proxy-Authorization:包含使用代理服务器验证用户代理的凭据。

Caching

  • Age:对象已在代理缓存中的时间(以秒为单位)。
  • Cache-Control:在请求和响应中指定缓存机制的指令。
  • Expires:响应被视为陈旧的日期/时间。
  • Pragma:特定于实现的头部可能会在请求 - 响应链的任何位置产生各种效果。用于向后兼容Cache-Control头部尚不存在的 HTTP / 1.0 缓存。
  • Warning:包含可能问题信息的一般警告字段。

Conditionals

  • Last-Modified:它是验证器,是资源的最后修改日期,用于比较同一资源的多个版本。它不太准确ETag,但在某些环境下更容易计算。有条件的请求使用If-Modified-SinceIf-Unmodified-Since使用此值来更改请求的行为。
  • ETag:它是一个验证程序,它是标识资源版本的唯一字符串。有条件的请求使用If-MatchIf-None-Match使用此值来更改请求的行为。
  • If-Match:使请求有条件并仅当存储的资源与给定的 ETags 中的一个匹配时才应用该方法。
  • If-None-Match:使请求有条件并仅在存储的资源与任何给定的 ETag 不匹配时才应用该方法。这用于更新缓存(用于安全请求),或者防止在已经存在的情况下上载新资源。
  • If-Modified-Since:使请求有条件并期望实体仅在给定日期后被修改的情况下才被传送。这仅用于在缓存过期时传输数据。
  • If-Unmodified-Since:使请求有条件,并期望实体仅在给定日期后未被修改的情况下才被传送。这用于确保特定范围的新片段与先前片段的一致性,或者在修改现有文档时实现乐观并发控制系统。

连接管理

  • Connection:控制当前事务完成后网络连接是否保持打开状态。
  • Keep-Alive:控制持续连接应保持打开状态的时间。

内容协商

  • Accept:通知服务器可以发回的数据类型。它是 MIME 类型的。
  • Accept-Charset:通知服务器客户端能够理解哪些字符集。
  • Accept-Encoding:通知服务器有关编码算法,通常是一种压缩算法,可用于回送的资源。
  • Accept-Language:通知服务器关于服务器预期发回的语言。这是一个提示,并不一定完全在用户的全面控制之下:服务器应始终注意不要重写明确的用户选择(如在下拉列表中选择语言)。

Cookies

  • Cookie:包含先前由服务器使用Set-Cookie标题发送的存储的 HTTP Cookie 。
  • Set-Cookie:将 cookies 从服务器发送到用户代理。

CORS

  • Access-Control-Allow-Origin:指示是否可以共享响应。
  • Access-Control-Allow-Credentials:指示在凭证标志为 true 时是否可以公开对请求的响应。
  • Access-Control-Allow-Headers:用于响应预检请求以指示在发出实际请求时可以使用哪些 HTTP 标头。
  • Access-Control-Allow-Methods:指定访问资源以响应预检请求时允许的方法。
  • Access-Control-Expose-Headers:通过列出其名称,指示哪些头可以作为响应的一部分公开。
  • Access-Control-Max-Age:指示可以缓存预检请求结果的时间长度。
  • Access-Control-Request-Headers:用于发出预检请求以让服务器知道在实际请求发生时将使用哪些 HTTP 标头。
  • Access-Control-Request-Method:用于发出预检请求时,让服务器知道在发出实际请求时将使用哪种 HTTP 方法。
  • Origin:指示获取来源的位置。

下载

  • Content-Disposition:如果传输的资源应以内联方式显示(标题不存在时的默认行为),或者应该像下载一样处理,并且浏览器应显示“另存为”窗口,那么它是响应标头。

消息正文信息

  • Content-Length:表示发送给收件人的实体主体的大小,以十进制数表示。
  • Content-Type:指示资源的媒体类型。
  • Content-Encoding:用于指定压缩算法。
  • Content-Language:描述用于受众的语言,以便用户根据用户自己的首选语言进行区分。
  • Content-Location:指示返回数据的备用位置。

代理

  • Forwarded:包含代理服务器的面向客户端的信息,这些信息在请求路径中包含代理时发生了改变或丢失。
  • X-Forwarded-For:标识通过 HTTP 代理或负载平衡器连接到 Web 服务器的客户端的始发 IP 地址。
  • X-Forwarded-Host:标识客户端用于连接到代理或负载平衡器的原始主机请求。
  • X-Forwarded-Proto:标识客户端用于连接到代理或负载平衡器的协议( HTTP 或 HTTPS )。
  • Via:代理添加了正向和反向代理,并且可以出现在请求头和响应头中。

重定向

  • Location:指示将页面重定向到的 URL 。

请求上下文

  • From:包含控制请求用户代理的人类用户的 Internet 电子邮件地址。
  • Host:指定服务器的域名(用于虚拟主机),以及(可选)指定服务器正在侦听的 TCP 端口号。
  • Referer:之前的网页的地址,从该网页开始,链接到当前请求的页面。
  • Referrer-Policy:管理在Referer头文件中发送的引用者信息应包含在请求中。
  • User-Agent:包含允许网络协议对等方标识请求软件用户代理的应用程序类型,操作系统,软件供应商或软件版本的特征字符串。另请参阅 Firefox 用户代理字符串参考。

响应上下文

  • Allow:列出资源支持的一组 HTTP 请求方法。
  • Server:包含有关原始服务器用来处理请求的软件的信息。

范围请求

  • Accept-Ranges:指示服务器是否支持范围请求,如果有,请在哪个单位范围内表示。
  • Range:指示服务器应返回的文档的一部分。
  • If-Range:创建一个条件范围请求,只有当给定的 etag 或日期与远程资源匹配时才会满足该条件范围请求。用于防止从资源的不兼容版本下载两个范围。
  • Content-Range:指示部分消息所属的全身消息的位置。

安全

  • Content-Security-PolicyCSP):控制用户代理允许为给定页面加载的资源。
  • Content-Security-Policy-Report-Only:允许 Web 开发人员通过监视(但不强制执行)其效果来实验策略。这些违规报告由通过 HTTP 请求发送到指定 URI 的 JSON 文档组成POST
  • Public-Key-PinsHPKP):将特定加密公钥与某个 Web 服务器关联,以降低伪造证书对 MITM 攻击的风险。Public-Key-Pins-Report-Only将报告发送到标题中指定的 report-uri ,并且仍允许客户端连接到服务器,即使违反了锁定。
  • Strict-Transport-SecurityHSTS):使用 HTTPS 而不是 HTTP 强制通信。
  • Upgrade-Insecure-Requests:向服务器发送一个信号,表示客户对加密和认证响应的偏好,并且可以成功处理该upgrade-insecure-requests指令。
  • X-Content-Type-Options:禁用 MIME 嗅探并强制浏览器使用中指定的类型Content-Type
  • X-Frame-Options(XFO):指示是允许浏览器呈现<frame><iframe>或者<object>X-XSS-Protection中的页面,还是启用跨站点脚本过滤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值