5 HTTP 首部(二):请求首部字段
来源:互联网 发布:php网站开发demo 编辑:程序博客网 时间:2024/05/30 05:41
Accept 用户代理可处理的媒体类型
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
通知服务器用户代理能够处理的媒体类型及相对优先级
可使用 type/subtype,一次指定多种媒体类型
若要设置优先级,使用 q= 来额外表示权重值,用 ; 分隔。范围 0-1(可精确到小数点后 3 位),1 为最大,不指定时,默认值为 q=1.0
Accept-Charset 优先的字符集
Accept-Charset: iso-8859-5, unicode-1-1;q=0.8
通知服务器用户代理支持的字符集及相对优先顺序
通过 q= 来表示优先级
Accept-Encoding 优先的内容编码
Accept-Encoding: gzip, deflate
通知服务器用户代理支持的内容编码及优先级
通过 q= 来表示优先级
主要由以下几种
gzip:由 GNU zip 程序生成的编码格式
compress:由 UNIX 文件压缩程序 compress 生成的编码格式
deflate:组合适用 zlib 及由 deflate 压缩算法生成的编码格式
identity:不执行压缩或不会变化的默认编码格式
Accept-Language 优先的语言
Accepte-Language: zh-cn,zh;q=0.7,en-us,en;q=0.3
通知服务器用户代理能够处理的自然语言集及优先级
通过 q= 来表示优先级
Authorization Web 认证信息
通知服务器用户代理的认证信息
通常,想要通过服务器认证的用户代理会在接收到返回的 401 状态码响应后,把首部字段 Authorization 加入请求。共用缓存在接收到含有 Authorization 首部字段的请求时的操作处理会略有差异
Expect 期待服务器的特定行为
告知服务器期望出现的某种行为
服务器无法理解客户端的期望作出回应而发生错误时,返回 417 Expectation Failed
客户端可利用该字段写明期望的扩展
HTTP/1.1 规范只定义了 100-continue,等待状态码 100 的这个响应的客户端在请求时,需要指定 Expect: 100-continue
From 用户的电子邮箱地址
From: xx@163.com
目的是为了显示搜索引擎等用户代理的负责人的电子邮件
使用代理时,应尽可能包含该字段
Host 请求资源所在服务器
告知服务器请求的资源所在互联网主机名和端口号
在 HTTP/1.1 规范内,该字段是唯一一个必须被包含在请求内的首部字段
单台服务器分配多个域名的虚拟主机时,服务器会先将域名转成 IP,但相同的 IP 下部署运行着多个域名,因此需要通过 Host 来明确请求的主机名
若未设定主机名,直接发送空值,即 Host:
条件请求
形如 If-xxx 的请求字段,都可称为条件请求
服务器收到条件请求后,判断指定条件为真时,才会执行请求
If-Match 比较实体标记(ETag)
实体标记 ETag 是与特定资源关联的确定值,资源更新后 ETag 也会随之更新
服务器会比对 If-Match 字段值和资源的 ETag 值,仅当两者一致时,才会执行请求。反之,则返回状态码 412 Precondition Failed 的响应
可以使用 * 指定 If-Match 值,相当于不匹配,服务器会忽略 ETag 值,只要资源存在就处理请求
If-Modified-Since 比较资源的更新时间
- 告知服务器若该字段值早于资源的更新时间,则处理请求,否则返回 304 Not Modified
If-None-Match 比较实体标记(与 If-Match 相反)
字段值和资源的 ETag 值不一致时,处理该请求
在 GET 或 HEAD 方法使用该字段可以获取更新的资源,与使用 If-Modified-Since 有些类似
If-Range 资源未更新时发送实体 Byte 的范围请求
If-Range: "123456"Range: bytes=5001-10000
告知服务器指定的 If-Range 字段值(ETag 或时间)和请求资源的 ETag 或时间一致时,则作为范围请求处理。反之返回全部资源
如果服务器资源 ETag 为 “123456”,则返回 5001-10000 范围内的资源,反之忽略这个范围,返回全部资源
If-Unmodified-Since 比较资源的更新时间(与 If-Modified-Since 相反)
告知服务器,未发生更新时处理请求
如果指定日期后更新了,则返回 412 Precondition Failed
Max-Forwards 最大传输逐跳数
通过 TRACE 或 OPTIONS 方法,发送包含 Max-Forwards 的请求时,该字段以十进制整数形式指定可经过的服务器最大数目
服务器在往下一个服务器转发请求前,会将 Max-Forwards 值减 1 后重新赋值
当服务器收到 Max-Forwards 为 0 的请求时,则不再转发,直接返回响应
有时代理服务器因为某些原因请求失败,客户端就无法收到响应,灵活使用该字段,当值为 0 时,服务器会立刻返回响应
Proxy-Authorization 代理服务器要求客户端的认证信息
Proxy-Authorization: Basic dG1wOjkpNLAGfFY5
接收到从代理服务器发来的认证质询时,客户端会发送包含该字段的请求,以告知服务器认证所需要的信息
这是用于客户端和代理之间的认证,客户端和服务端的认证通过 Authorization 字段
Range 实体的字节范围请求
- 服务器处理请求后,返回 206 Partial Content。如果无法处理范围请求,返回 200 OK 的响应及全部资源
Referer 对请求中 URI 的原始获取方
Referer: http://w3school.com.cn/html/index.asp
告知服务器请求的原始资源的 URI
客户端一般会发送该字段给服务器,但在浏览器地址栏输入 URI,出于安全性考虑,也可以不发送,因为原始 URI 的查询字符串可能含有 ID 和密码等保密信息,写进 Referer 转发给其他服务器,可能导致保密信息的泄露
TE 传输编码的优先级
TE: gzip, deflate;q=0.5
告知服务器客户端能够处理响应的编码方式即优先级
和 Accepte-Encoding 功能相似,但是用于传输编码
还可以指定伴随 trailer 字段的分块传输编码的方式,要这样使用时,只需把 trailers 赋值给该字段,即
TE: trailers
User-Agent HTTP 客户端程序的信息
将创建请求的浏览器和用户代理名称等信息传给服务器
网络爬虫发起请求时,可能在该字段内添加爬虫作者的电子邮件地址。此外经过代理,中间也可能被添加上代理服务器的名称
参考:《图解HTTP》第6章
- 5 HTTP 首部(二):请求首部字段
- HTTP详解--请求首部字段(十)
- HTTP首部(二)
- HTTP请求首部的Host字段
- 6.3 请求首部字段
- 4 HTTP 首部(一):通用首部字段
- 6 HTTP 首部(三):响应首部字段
- 7 HTTP 首部(四):其它首部字段
- Http首部字段
- HTTP首部字段
- HTTP详解--响应首部字段(11)
- Http详解--实体首部字段(12)
- HTTP首部(二)
- Http协议基础之HTTP请求首部字段
- HTTP首部行可选字段
- HTTP全部报文首部字段
- Http/1.1 首部字段一览
- HTTP协议之首部字段
- JSP基本语法
- 第十三章 ------ RememberMe
- mysql查询结果导出文件,导入文件
- bootstrap下拉菜单与滚动监视器学习笔记(2-2 下拉菜单--属性声明式方法(一))
- iOS 上拉加载,下拉刷新,本人使用MJRefresh
- 5 HTTP 首部(二):请求首部字段
- MB与MQ区别(IBM)
- [java] equals
- Android View Scroller类,scrollTo(...)和scrollBy(...)方法
- 断点续传
- 从菜鸟到资深工程师的进阶之路
- Autolayout 基础
- 详细的Android Studio系列教程一--下载和安装
- 把py编译到pyc