http协议基础(八)请求首部字段
请求首部字段
定义:请求首部字段是从客户端到服务器发送请求报文中所使用的字段,里面包含了附加信息、客户端信息以及对响应内容相关的优先级等内容
1、Accept
通知服务器用户代理可处理的媒体类型及媒体类型的相对优先级,可使用type/subtype这种形式,一次指定多种媒体类型
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
q表示权重,默认值为1.0,当服务器提供多种内容时,将会有优先返回权重值最高的媒体类型
下面举几个例子:
文本文件:
text/html,text/plain,text/css...
application/xhtml+xml,application/xml...
图片文件:
image/jpeg,image/gif,image/png...
视频文件:
video/mpeg,video/quicktime...
应用程序使用的二进制文件
application/octet-stream,application/zip...
2、Accept-Cherset
通知服务器用户代理支持的字符集及字符集的相对优先级,可一次性指定多个字符集。
该首部字段可用权重q值来表示相对优先级
该首部字段应用于内容协商机制的服务器驱动协商
Accept-Charset: iso-8859-5, unicode-1-1;q=0.8
3、Accept-Encoding
告知服务器用户代理支持的内容编码及内容编码优先级顺序,可一次性指定多种内容编码
Accept-Encoding: gzip, deflate
常用的几种编码格式:
gizp:由文件压缩程序gzip(GUN zip)生成的编码格式
compress:由UNIX文件压缩程序compress生成的编码格式
deflate:组合使用zlib格式及由deflate压缩格式生成的编码格式
jdentity:不执行压缩或不会变化的默认编码格式
同样,这里可以使用q值表示相对优先级,也可以使用(*)作为通配符,指定任意的编码格式
4、Accept-Lanuage
告知服务器用户代理能够处理的自然语言集,以及其相对有限集,可一次指定多种自然语言集
同样可使用权重值q表示相对优先级
Accept-Lanuage: zh-cn,zh;q=0.7,en=us,en;q=0.3
5、Authorization
告知服务器用户代理的认证信息(证书值)。
通常想要通过验证的用户代理会在接受到第一次返回的401状态码响应后,把首部字段加入请求中,共用缓存接收到含有该字段的请求时操作处理会有所差异
6、Expect
客户端使用该字段告知服务器,期望出现某种特定行为
如果服务器无法理解期望作出回应而发生错误,会返回状态码417Expect Failed,客户端可以利用该字段,写明所期望的扩展
http/1.1规范值定义了100-continue(转台吗100Continue之意)
Expect: 100-continue
7、From
告知服务器使用用户代理的用户垫子邮件地址
目的:显示搜索引擎等用户代理的负责人的电子邮件联系方式
From: IMyalost@163.com
8、Host
告知服务器请求的资源所处的互联网主机名和端口号
Host首部字段是在HTTP/1.1规范内唯一一个必须被包含在请求内的首部字段
Host: www.baidu.com
9、If-Match
格式如If-xxx这样的请求首部字段,都可以称之为条件请求,服务器收到请求,只有判定条件为真时,才会执行请求
该字段告知服务器匹配资源所用的实体标记(ETag)值,这时无法使用弱ETag值
如果判断条件不为真,则返回412Precondition Failed响应
还可以使用(*)指定If-Match的字段值,这种情况下服务器将忽略ETag值,只要资源存在就处理请求
If-Match: "123456"
10、If-Modified-Since
条件请求,告知服务器若字段指定值早于资源更新时间,则希望能处理请求,如果在该字段指定的日期时间大于资源更新时间,则返回304Not Modified响应
用于确认代理或者客户端拥有的本地资源的有消息
If-Modified-Since: Thu, 15 Apr 2004 00:00:00 GMT
11、If-None-Match
条件请求,和If-Match作用相反。当该字段值的实体标记(ETag)值与请求资源的ETag不一致时,告知服务器处理该请求
在GET或HEAD方法中使用该字段可获取最新的资源
12、If-Range
条件请求,告知服务器若指定的值和请求资源的值一致,则作为范围请求处理,反之,则返回全部资源
request: response:
GET /index.html 206 Partial Content
If-Range: "123456" Content-Range: bytes 5001-10000/10000
Range: bytes=5001-10000 Content-Length:5000
上面的请求和资源匹配一致,那么久作为范围请求处理
13、If-Unmodified-Since
条件请求,该字段和If-Unmodified-Since字段作用相反,作用是告知服务器,指定的请求资源只有在字段值内指定的日期之后,未发生更新的情况下,才能处理请求。
如指定时间之后发生更新,则返回412 Precondition Failed作为响应返回
If-Unmodified-Since: Thu, 03 Jul 2016 00:00:00 GMT
14、Max-Forwards
我们都知道使用http协议通信时,请求可能会经过代理等多台服务器,如果由于某些原因导致请求转发失败,那么客户端收不到响应,我们对此一无所知
通过TRACE或者OPTIONS方法,发送包含该字段的请求时,该字段以十进制整数形式指定可经过的服务器最大数目
简单来讲,就是指定Max-Forwards的值,每经过一次转发,就-1.当值变为0.直接返回响应
Max-Forwards: 10
15、Proxy-Authorization
收到代理服务器发来的认证质询时,客户端向代理服务器发送包含首部字段的请求,以告知服务器所需要的认证的信息
Proxy-Authorization: Basic dGLwoPNLAGKGFY5
16、Range
对于只需获取部分资源的范围请求,包含首部字段Range即可告知服务器资源的指定范围
接收到附带Range字段的服务器,会返回206Partial Content的响应;无法处理请求时,则返回200 OK的响应及全部资源
Range: bytes=5001-10000
17、Referer
告知服务器请求的原始资源的URI
Referer:www,baidu.com/index.xml
18、TE
告知服务器客户端能够处理响应的传输编码方式及相对优先级
TE:gzip, deflate;q=0.5
该字段还可以指定伴随trailer字段的分块传输编码的方式
TE:trailers
19、User-Agent
该字段会将创建请求的浏览器和用户代理名称等信息传给服务器
如果由网络爬虫发起请求,可能会在请求中添加爬虫作者的垫子邮件地址。因此,如果请求经过代理,那么中间也很可能被添加上代理服务器名称
User-Agent: Mozilla/5.0 (windows NT 6.1; WOW64; rv13.0) Gecko/=20100101 Firfox/13.0.1
http协议基础(八)请求首部字段的更多相关文章
- http协议(八)请求首部字段
请求首部字段 定义:请求首部字段是从客户端到服务器发送请求报文中所使用的字段,里面包含了附加信息.客户端信息以及对响应内容相关的优先级等内容 1.Accept 通知服务器用户代理可处理的媒体类型及媒体 ...
- HTTP协议08-请求首部字段
请求首部字段 请求首部字段是从客户端往服务器端发送请求报文中所使用的字段,用于补充请求的附加信息.客户端信息,对响应内容相关的优先级等内容 1)Accept 通知服务器,用户代理能够处理的媒体类型及媒 ...
- HTTP 协议常见首部字段
首部字段 1.HTTP协议的请求和响应报文中必定包含HTTP首部.首部内容为客户端和服务器处理请求和响应提供了所必须的信息. 2.HTTP首部字段是由首部字段名和字段值构成,中间用冒号“:”隔开.字段 ...
- http协议基础(六)报文首部
http请求和响应报文内容比较多,会分为大概四部分更新,最近比较忙,没太多时间整理- - 首先来看看报文结构吧 1.http请求报文 http请求报文由方法.URI.http版本.http首部字段等构 ...
- HTTP协议图--HTTP 报文首部之首部字段(重点分析)
1.首部字段概述 先来回顾一下首部字段在报文的位置,HTTP 报文包含报文首部和报文主体,报文首部包含请求行(或状态行)和首部字段. 在报文众多的字段当中,HTTP 首部字段包含的信息最为丰富.首部字 ...
- HTTP全部报文首部字段
总结了一下HTTP各种报文首部字段. HTTP报文类型与结构 HTTP报文结构 报文首部 空行(CR+LF) 报文主体 HTTP报文类型 http有两种类型报文,请求报文和响应报文两种报文的首部结构如 ...
- HTTP 首部字段详细介绍
本文是HTTP解析系列第二篇,如果对http协议不是很了解,可以选去看第一篇:带新手走进神秘的HTTP协议,本文主要是对Http的首部字段进行详细解析. HTTP 协议的请求和响应报文中必定包含 HT ...
- HTTP首部字段
HTTP首部由首部字段名和首部字段值组成,以逗号隔开.如果首部出现重复,有些浏览器优先处理第一个出现的首部,有些优先处理后者. 主要分为四大类 通用首部字段 请求首部字段 响应首部字段 实体首部字段 ...
- HTTP===http首部字段
HTTP 首部字段 HTTP 首部字段是构成 HTTP 报文的要素之一.在客户端与服务器之间以 HTTP 协议进行通信的过程中,无论是请求还是响应都会使用首部字段,它能起到传递额外重要信息的作用. 使 ...
随机推荐
- swagger环境搭建
下面所用工具下载 http://editor.swagger.io/#/ demo 一.安装 swagger editor 说明:安装swagger前需要安装node工具 工具安装 ...
- git上传的文件夹为空的时候
1,先删除空的文件夹 参考:https://www.cnblogs.com/wang715100018066/p/9694532.html 2,这个只能说是技巧不能说是方法,原理是在每个空文件夹新建一 ...
- linux各种版本下载地址
本文转载地址:http://52199999.blog.51cto.com/740826/290179 觉得好大家给顶顶,先谢谢了!呵呵 首先提供两个镜像站:http://mirrors.sohu.c ...
- pam和sasl
这几天使用在Postfix搭建一个Webmail的平台,用户认证这一块最终使用了PAM.想整理一下思路,让自己对PAM有个更加清晰的认识. 1. PAM的简介 PAM全称是:Pluggabl ...
- EUI ViewStack实现选项卡组件 (封装了一个UI类)
封装一个选项卡的UI,用来应付游戏中各种需要选项卡的界面. 例如背包,背包界面的选项卡可以切换装备.物品.符文.宝箱. 下图方法的实现参考:EUI ViewStack实现选项卡组件 假如在主页Home ...
- 虚拟机VMware怎么完全卸载干净,如何彻底卸载VMware虚拟机
亲测好使. 1.禁用VM虚拟机服务 首先,需要停止虚拟机VMware相关服务.按下快捷键WIN+R,打开windows运行对话框,输入[services.msc],点击确定.如下图. 在服务管理中,找 ...
- CodeFrist、ModelFirst、DatabaseFirst
一.CodeFirst 使用System.Data.Entity.DbContext与System.Data.Entity.DbSet构建的数据模型,没有可视化文件但只有实体类的称为CodeFirst ...
- CentOS 6.8下更改Apache默认网站安装目录
首先,当我们搭建好LAMP环境后,Apache服务器默认的网站安装目录是/var/www/html 然而我们搭建项目时为了方便,我们是按照自己的意愿更改网站目录的 现在假设,按照意愿设定的网站目录为/ ...
- css如何设置div中的内容垂直居中?
<style>.out { position: relative;//相对div的定位 top: 30%;//相对div的border-top的距离,根据元素的高度,50%则为垂直居中:} ...
- iOS - Charles抓包数据
一.Charles Charles破解版下载地址点我 1.1 Charles主要的功能 .截取Http.Https网络请求内容 .支持修改网络请求参数,方便调试 .支持网络请求的截取 并动态修改 1. ...