请求首部字段

定义:请求首部字段是从客户端到服务器发送请求报文中所使用的字段,里面包含了附加信息、客户端信息以及对响应内容相关的优先级等内容

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协议(八)请求首部字段的更多相关文章

  1. http协议基础(八)请求首部字段

    请求首部字段 定义:请求首部字段是从客户端到服务器发送请求报文中所使用的字段,里面包含了附加信息.客户端信息以及对响应内容相关的优先级等内容 1.Accept 通知服务器用户代理可处理的媒体类型及媒体 ...

  2. HTTP协议08-请求首部字段

    请求首部字段 请求首部字段是从客户端往服务器端发送请求报文中所使用的字段,用于补充请求的附加信息.客户端信息,对响应内容相关的优先级等内容 1)Accept 通知服务器,用户代理能够处理的媒体类型及媒 ...

  3. HTTP协议07-通用首部字段

    通用首部字段 通用首部字段是指,请求报文和响应报文双方都会使用的首部. 1)Cache-Control 通过指定首部字段Cache-Control的指令,就能操作缓存的工作机制. 指令的参数可以多选, ...

  4. HTTP协议10-实体首部字段

    实体首部字段 实体首部字段是包含咋请求报文和响应报文中实体部分的首部,用于补充内容的更新时间等于实体相关的信息. 1)Allow Allow:GET,HEAD 用于通知客户端能够支持访问指定资源的请求 ...

  5. HTTP协议09-响应首部字段

    响应首部字段 响应首部字段是由服务器向客户端返回响应报文中所使用的字段,用于补充响应的附加信息.服务器信息,以及对客户端的附加要求等信息. 1)Accept-Ranges Accept-Range:b ...

  6. HTTP 协议常见首部字段

    首部字段 1.HTTP协议的请求和响应报文中必定包含HTTP首部.首部内容为客户端和服务器处理请求和响应提供了所必须的信息. 2.HTTP首部字段是由首部字段名和字段值构成,中间用冒号“:”隔开.字段 ...

  7. HTTP协议图--HTTP 报文首部之首部字段(重点分析)

    1.首部字段概述 先来回顾一下首部字段在报文的位置,HTTP 报文包含报文首部和报文主体,报文首部包含请求行(或状态行)和首部字段. 在报文众多的字段当中,HTTP 首部字段包含的信息最为丰富.首部字 ...

  8. HTTP全部报文首部字段

    总结了一下HTTP各种报文首部字段. HTTP报文类型与结构 HTTP报文结构 报文首部 空行(CR+LF) 报文主体 HTTP报文类型 http有两种类型报文,请求报文和响应报文两种报文的首部结构如 ...

  9. HTTP 首部字段详细介绍

    本文是HTTP解析系列第二篇,如果对http协议不是很了解,可以选去看第一篇:带新手走进神秘的HTTP协议,本文主要是对Http的首部字段进行详细解析. HTTP 协议的请求和响应报文中必定包含 HT ...

随机推荐

  1. Android提交数据到JavaWeb服务器实现登录

    之前学习Android提交数据到php服务器没有成功,在看了两三个星期的视频之后,现在终于实现了与服务器的交互.虽然完成的不是PHP端的,但是在这个过程还是学到了不少东西的.现在我先来展示一下我的成果 ...

  2. 看苹果官方API

    command+shift+0会出现如下图 然后输入你想找的API 记得找带Reference这种标记的文档

  3. json与jsonp的区别

    前言 由于Sencha Touch 2这种开发模式的特性,基本决定了它原生的数据交互行为几乎只能通过AJAX来实现. 当然了,通过调用强大的PhoneGap插件然后打包,你可以实现100%的Socke ...

  4. Linux使用汇总贴

    1. 服务开机启动 比如: update-rc.d ssh enable 2. 修改hostname [基于ubutun] hostname newname vi /etc/hostnamevi /e ...

  5. 简单阐述下Ajax以get方式请求的步骤 初学,不对的话,跟我说下,谢谢!

    首先, 在GET提交中"=,&"等字符与请求字符串的关键字相混淆.所以: 第一步,先对get提交过来的数据进行编码. 第二步,实例化ajax对象. 第三步,创建对服务器的连 ...

  6. lucene分词器与搜索

    一.分词器 lucene针对不同的语言和虚伪提供了许多分词器,我们可以针对应用的不同的需求使用不同的分词器进行分词.我们需要注意的是在创建索引时使用的分词器与搜索时使用的分词器要保持一致.否则搜索的结 ...

  7. Java api 入门教程 之 JAVA的Date类与Calendar类

    在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不便于实现国际化,所以从JDK1.1版本开始,推荐使用Calendar类进行时间和日期处理. 一.这里简单介绍一下Date类的使 ...

  8. 烂泥:apache性能测试工具ab的应用

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 网站性能压力测试是服务器网站性能调优过程中必不可缺少的一环.只有让服务器处在高压情况下,才能真正体现出软件.硬件等各种设置不当所暴露出的问题. 性能测试 ...

  9. SlidingMenu的简单使用

    1.java代码 1.引入slidingmenu的库 * 2.定义activity继承SlidingFragmentActivity * 3.将onCreate方法改为public的 * 4.加载sl ...

  10. 工作中常用的Linux命令:crontab命令

    本文链接:http://www.cnblogs.com/MartinChentf/p/6060252.html (转载请注明出处) crontab是一个用来设置.删除或显示供守护进程cron执行的定时 ...