HTTP Headers


标题 内容
HTTP Headers HTTP Headers定义
HTTP Headers HTTP Headers种类
HTTP Headers HTTP Headers使用
HTTP Headers HTTP Headers配置(方案,内容以及结果示例)

HTTP Headers定义

  • 我们都知道HTTP协议是应用层面向链接的协议,而HTTP Headers(消息头)允许客户端(client)和服务端(server)通过requestresponse传递附加信息,也就是我们常见的API接口请求。
  • 形式就是<Headers名称>:<Headers值>,需要注意的是Headers名称不区分大小写,Headers值不带换行符并且Headers值前面的引导空白会被忽略

HTTP Headers种类

  • 不同上下问进行种类区分

General Headers

  • 同时适用于请求request和响应response消息,但与最终消息主体body中传输的数据无关的消息头,也就是说不能应用于消息内容自身的HTTP Headers。

  • 取决应用Application的上下文环境,通用首部可以是响应头部或者请求头部,但是不可以实体头部,再次强调了一遍了。

  • 都有如下这些:

消息头 描述 更多信息 HTTP 版本(引入版本)
Cache-Control 控制缓存的行为 - -
Connection 逐条首部,链接的管理 - -
Keep-Alive 允许消息发送者暗示连接的状态,还可以用来设置超时时长和最大请求数 需要将 The Connection 首部的值设置为 “keep-alive” 这个首部才有意义。同时需要注意的是,在HTTP/2 协议中, Connection 和 Keep-Alive 是被忽略的;在其中采用其他机制来进行连接管理 -
Date 创建报文的日期时间 - -
Pragma 报文指令 - -
Trailer 报文末端的首部一览 列出将在消息正文之后在尾部块中传输的头。这允许服务器计算一些值,如Content-MD5:在传输数据时。请注意,Trailer:标头不得列出Content-Length :, Trailer:或Transfer-Encoding:headers -
Transfer-Encoding 指定报文主体的传输编码方式 - -
Upgrae 升级为其它协 - -
Via 代理服务器的相关信息 - -
Warning 错误通知 - -

Request Headers

  • 包含更多有关要获取的资源或者客户端本身信息的消息头

  • 都有如下这些:

消息头 描述 更多信息 HTTP 版本(引入版本)
Accept 用户代理期望的MIME 类型列表 HTTP Content Negotiation HTTP/1.1
Accept-Charset 列出用户代理支持的字符集 HTTP Content Negotiation HTTP/1.1
Accept-Encoding 列出用户代理支持的压缩方法 HTTP Content Negotiation HTTP/1.1
Accept-Language 列出用户代理期望的页面语言 HTTP Content Negotiation HTTP/1.1
Authorization 包含用服务器验证用户代理的凭证 - -
Expect 期待服务器的特定行为 - -
Form 用户的电子邮箱地址 - -
Host 请求资源所在的服务器 - -
If-Match 比较实体标记(ETag) - -
If-Modified-Since 比较资源的更新时间 - -
If-None-Match 比较实体标记(与If-Match 相反 ) - -
If-Range 资源未更新时发送实体 Byte 的范围 - -
If-Unmodified-Since 比较资源的更新时间 - -
Max-Forwards 最大传输逐跳数 - -
Proxy-Authorization 代理服务器要求客户端的认证信息 - -
Range 实体的字节范围请求 - -
Referer 对请求中的 URI 的原始获取方 - -
TE 传输编码的优先级 - -
User-Agent HTTP 客户端程序的信息 - -

Response Headers

  • 包含有关响应的补充信息,如其位置或者服务器本身(名称和版本等)的消息头。

  • 都有如下这些:

消息头 描述 更多信息 HTTP 版本(引入版本)
Accept-Ranges 是否接受字节Bytes范围请求 - -
Age 推算资源创建经过时间 - -
ETag 资源的匹配信息(协商缓存中的消息头) - -
Location 代理服务器对客户端的认证信息 - -
Proxy-Authenticate 代理服务器对客户端的认证信息 - -
Retry-After 对再次发起请求的时机要求 - -
Server HTTP 服务器的安装信息 - -
Vary 代理服务器缓存的管理信息 - -
WWW-Authenticate 服务器对客户端的认证信息 - -

Entity Headers

  • 包含有关实体主体的更多信息,比如主体长度(Content-Length)或者其他MIME类型

  • 都有如下这些:

消息头 描述 更多信息 HTTP 版本(引入版本)
Allow 资源可支持的 HTTP 方法(GET, POST, PUT, DELETE, OPTION) - -
Content-Encoding 实体主体适用的编码方式 - -
Content-Language 实体主体的自然语言 - -
Content-Length 实体主体的大小(单位:Byte) - -
Content-Location 替代对应资源的 URI - -
Content-MD5 实体主体的报文摘要 - -
Content-Range 实体主体的位置范围 - -
Content-Type 实体主体的媒体类型 - -
Expires 实体主体的过期日期时间(强缓存设置参数) - -
Last-Modified 资源的最后修改日期时间(强缓存的设置参数) - -

  • 不同处理方式分类

端到端消息头

  • 请求的服务器(server)或者响应的客户端(client)必须要接受到端到端消息头,也就是是这类消息头必须被传输到最终的消息接收者
  • 中间的代理服务器必须转发未经修改的端到端消息头,并且必须缓存它们

逐跳消息头

  • 逐跳(不是逐条)消息头仅对单次传输连接有意义,不能通过代理或者缓存进行重新转发。这些消息头包括Connection, Keep-Alive, Proxy-Authenticate, Proxy-Authorization, TE, Trailer, Transfer-Encoding以及Upgrade

  • 注意: 只能使用Connection来设置逐跳消息头,也就是说如果我们需要使用逐跳消息头,需要结合Connection消息头配合使用。

  • 通常有如下这些:

消息头 描述 更多信息 HTTP 版本(引入版本)
Connection - - -
Keep-Alive - - -
Proxy-Authenticate - - -
Proxy-Aruhoriztion - - -
Traller - - -
TE - - -
Transfer-Encoding - - -
Upgrade - - -

https://datatracker.ietf.org/doc/html/rfc6648
https://www.iana.org/assignments/message-headers/message-headers.xhtml
https://datatracker.ietf.org/doc/html/rfc4229
https://www.iana.org/assignments/message-headers/message-headers.xhtml
Thinking in JackDan

HTTP Headers相关推荐

  1. 后端说:只是你不懂怎么用 headers!

    事情是这样的,上一个项目我们的后端提供的接口,一次性返回了所有数据给我,分页功能是前端自己完成的. 那么这次来的新项目,换了个后端,写了另外的接口,我做项目的时候,还是用的之前的前端分页组件,但是测试 ...

  2. 爬虫之requests模块在headers参数中携带cookie发送请求

    爬虫之requests模块在headers参数中携带cookie发送请求 网站经常利用请求头中的Cookie字段来做用户访问状态的保持,那么我们可以在headers参数中添加Cookie,模拟普通用户 ...

  3. 爬虫笔记|r.text-r.request.headers|修改,头

    代码: import requestsdef gethtmltext(url):try:k = {'user-agent':'Mozilla/5.0'}r = requests.get(url, he ...

  4. 搞互联网研发,你真的懂HTTP Headers么?

    超文本传输协议(HTTP)最早是由Tim Berners-Lee在1991年提出的.最初版本的HTTP/0.9旨在促进客户机和服务器之间的数据传输.该协议工作在TCP连接上的请求-响应模型上,但是经过 ...

  5. ConfigParser MissingSectionHeaderError: File contains no section headers.

    今天使用ConfigParser解析一个ini文件,报出如下错误: config.read(logFile)File "C:\Python26\lib\ConfigParser.py&quo ...

  6. python爬虫——随机生成headers

    https://www.jianshu.com/p/fc3c885fe026 在编写爬虫进行网页数据,有时候需要添加请求头,去找并添加很麻烦.下面介绍一个python下非常好用的伪装请求头的库:fak ...

  7. 什么是HTTP Headers?

    什么是HTTP Headers HTTP是"Hypertext Transfer Protocol"的所写,整个万维网都在使用这种协议,几乎你在浏览器里看到的大部分内容都是通过ht ...

  8. Cannot send session cache limiter - headers already sent错误解决方法

    在windows下编程,当使用session_start()方法的时候,有时会报 session_start() [function.session-start]: Cannot send sessi ...

  9. 微信小程序上传图片时provisional headers are shown显示我的错误解决方案

    按微信官方图片示例上传图片的时候,出现了 provisional headers are shown的错误信息,同时查看返回的信息Connection:close为关闭状态,这就坑得了.找了好久没找到 ...

  10. authorization 传 就跨域_JavaScript 使用 headers Authorization 存放 token 出现跨域错误?...

    在设置了 headers 请求头中的 Authorization 后出现了这个问题 请求异常 Failed to load http://host:port/auth/user/updatePassw ...

最新文章

  1. 编写多线程Java应用程序常见问题
  2. 在微信小程序里自动获得当前手机所在的经纬度并转换成地址
  3. 把Apache里面的网站和MySQL数据库移动到home盘
  4. 红火七月——安全专家齐聚共讨漏洞分析
  5. QGIS 3. 使用qgis制作三维浮雕地图
  6. 激光雷达点云的特征表达
  7. kali linux安装QQ linux版教程
  8. 天轰穿C#教程之数学运算符
  9. origin中文版散点图拟合曲线_Origin9绘图时对一组散点图中的不同部分分别进行线性拟合的方法...
  10. Windows无法安装到这个磁盘。选中的磁盘具有MBR分区表。在EFI系统上,Windows只能安装到GPT磁盘
  11. 【实战项目惜时App项目总结分析】Vue-cli3+Vant UI+Vue-element-admin+Egg.js+Mysql
  12. 电容电阻电感的等效分析
  13. 服务器虚拟化好处现状二工大,服务器虚拟化优缺点(二)
  14. 【有利可图网】PS教程:用滤镜打造3D立体文字效果
  15. url相关工具 - url转码工具
  16. OpenCat 简评
  17. Canvas绘制基本线条的方式
  18. Win10开机自动同步时间
  19. vue-cli之加载ico文件
  20. RARP:反向地址转换协议

热门文章

  1. 计算机软考答题卡填涂格式,2020年计算机软件水平考试答题卡填涂技巧
  2. 浅析Relaxed Ordering对PCIe系统稳定性的影响
  3. 国际结算三大方式之一——托收
  4. php pwuj 挂马,网站挂马原理及实战
  5. 圆柱壳matlab,[matlab遗传算法工具箱论文]基于遗传算法和BP神经网络的圆柱壳大...
  6. Hello MySQL(八)——自定义函数
  7. Hello MySQL(四)——MySQL数据库创建实例
  8. PythonR LEfSe 分析
  9. 一文看懂量子十问(上篇)
  10. 腾讯校招都会问些什么?| 五面腾讯(Java岗)经历分享