HTTP Headers
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)通过
request
和response
传递附加信息,也就是我们常见的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相关推荐
- 后端说:只是你不懂怎么用 headers!
事情是这样的,上一个项目我们的后端提供的接口,一次性返回了所有数据给我,分页功能是前端自己完成的. 那么这次来的新项目,换了个后端,写了另外的接口,我做项目的时候,还是用的之前的前端分页组件,但是测试 ...
- 爬虫之requests模块在headers参数中携带cookie发送请求
爬虫之requests模块在headers参数中携带cookie发送请求 网站经常利用请求头中的Cookie字段来做用户访问状态的保持,那么我们可以在headers参数中添加Cookie,模拟普通用户 ...
- 爬虫笔记|r.text-r.request.headers|修改,头
代码: import requestsdef gethtmltext(url):try:k = {'user-agent':'Mozilla/5.0'}r = requests.get(url, he ...
- 搞互联网研发,你真的懂HTTP Headers么?
超文本传输协议(HTTP)最早是由Tim Berners-Lee在1991年提出的.最初版本的HTTP/0.9旨在促进客户机和服务器之间的数据传输.该协议工作在TCP连接上的请求-响应模型上,但是经过 ...
- ConfigParser MissingSectionHeaderError: File contains no section headers.
今天使用ConfigParser解析一个ini文件,报出如下错误: config.read(logFile)File "C:\Python26\lib\ConfigParser.py&quo ...
- python爬虫——随机生成headers
https://www.jianshu.com/p/fc3c885fe026 在编写爬虫进行网页数据,有时候需要添加请求头,去找并添加很麻烦.下面介绍一个python下非常好用的伪装请求头的库:fak ...
- 什么是HTTP Headers?
什么是HTTP Headers HTTP是"Hypertext Transfer Protocol"的所写,整个万维网都在使用这种协议,几乎你在浏览器里看到的大部分内容都是通过ht ...
- Cannot send session cache limiter - headers already sent错误解决方法
在windows下编程,当使用session_start()方法的时候,有时会报 session_start() [function.session-start]: Cannot send sessi ...
- 微信小程序上传图片时provisional headers are shown显示我的错误解决方案
按微信官方图片示例上传图片的时候,出现了 provisional headers are shown的错误信息,同时查看返回的信息Connection:close为关闭状态,这就坑得了.找了好久没找到 ...
- authorization 传 就跨域_JavaScript 使用 headers Authorization 存放 token 出现跨域错误?...
在设置了 headers 请求头中的 Authorization 后出现了这个问题 请求异常 Failed to load http://host:port/auth/user/updatePassw ...
最新文章
- 编写多线程Java应用程序常见问题
- 在微信小程序里自动获得当前手机所在的经纬度并转换成地址
- 把Apache里面的网站和MySQL数据库移动到home盘
- 红火七月——安全专家齐聚共讨漏洞分析
- QGIS 3. 使用qgis制作三维浮雕地图
- 激光雷达点云的特征表达
- kali linux安装QQ linux版教程
- 天轰穿C#教程之数学运算符
- origin中文版散点图拟合曲线_Origin9绘图时对一组散点图中的不同部分分别进行线性拟合的方法...
- Windows无法安装到这个磁盘。选中的磁盘具有MBR分区表。在EFI系统上,Windows只能安装到GPT磁盘
- 【实战项目惜时App项目总结分析】Vue-cli3+Vant UI+Vue-element-admin+Egg.js+Mysql
- 电容电阻电感的等效分析
- 服务器虚拟化好处现状二工大,服务器虚拟化优缺点(二)
- 【有利可图网】PS教程:用滤镜打造3D立体文字效果
- url相关工具 - url转码工具
- OpenCat 简评
- Canvas绘制基本线条的方式
- Win10开机自动同步时间
- vue-cli之加载ico文件
- RARP:反向地址转换协议
热门文章
- 计算机软考答题卡填涂格式,2020年计算机软件水平考试答题卡填涂技巧
- 浅析Relaxed Ordering对PCIe系统稳定性的影响
- 国际结算三大方式之一——托收
- php pwuj 挂马,网站挂马原理及实战
- 圆柱壳matlab,[matlab遗传算法工具箱论文]基于遗传算法和BP神经网络的圆柱壳大...
- Hello MySQL(八)——自定义函数
- Hello MySQL(四)——MySQL数据库创建实例
- PythonR LEfSe 分析
- 一文看懂量子十问(上篇)
- 腾讯校招都会问些什么?| 五面腾讯(Java岗)经历分享