首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
Web开发
> 详细
HTTP知识普及系列:HTTP首部
时间:
2016-05-15 12:32:18
阅读:
2074
评论:
0
收藏:
0
[点我收藏+]
标签:
HTTP协议的请求和响应报文中必定包含HTTP首部。首部内容为客户端和服务器分别处理请求和响应提供所需要的信息。在请求中,HTTP报文由方法、URI、HTTP版本、HTTP首部字段等部分构成。在响应中,HTTP报文由HTTP版本、状态码(数字和原因短语)、HTTP首部字段3部分构成。
客户端和服务器端以HTTP协议进行通信的过程中,无论是请求还是响应都会使用首部字段,它能起到传递额外重要信息的作用。首部字段是为了给浏览器和服务器提供报文主体大小、所使用的语言、认证信息等内容。
当HTTP报文首部中出现了两个或两个以上具有相同首部字段名时会怎么样?这种情况在规范内尚未明确,根据浏览器内部处理逻辑的不同,结果可能并不一致。有些浏览器会优先处理第一次出现的首部字段,而有的则会优先处理最后出现的首部字段。
HTTP四种首部字段类型
通用首部字段:请求报文和响应报文两方都会使用的首部。
请求首部字段:从客户端向服务器端发送请求报文时使用的首部。
响应首部字段:从服务器端向客户端返回响应报文时使用的首部。
实体首部字段:针对请求报文和响应报文的实体部分使用的首部。
通用首部字段
Cache-Control:通过指定首部字段Cache-Control的指令,就能操作缓存的工作机制。
Connection:控制不在转发给代理的首部字段;管理持久连接。
Data:表明创建HTTP报文的时间和日期。
Pragma:只用在客户端发送的请求中,所有的中间服务器不返回缓存的资源。
Trailer:事先说明报文主体后记录了哪些首部字段。同样可以用在分块传输编码时。
Transfer-Encoding:规定了传输报文主体时采用的编码方式。
Upgrade:用于检测HTTP协议及其他协议是否可以使用更高的版本进行通信。
Via:为了追踪客户端与服务器之间的请求和响应报文的传输路径。
Warning:通常会告知用户一些与缓存相关的问题的警告。
请求首部字段:请求首部字段是从客户端往服务器发送请求的报文中所使用的字段,用于补充请求的附加信息、客户端信息、对响应内容相关的优先级等内容。
Accept:该字段可通知服务器,用户代理能够处理的媒体类型及媒体类型的相对优先级。
Accept-Charset:用来通知服务器用户代理支持的字符集及字符集的相对优先顺序,可一次性指定多种字符集。
Accept-Encoding:用来告知服务器用户代理支持的内容编码及内容编码的优先级顺序。
Accept-Language:用来告知服务器用户代理嫩巩固处理的自然语言集(中文或英文等),以及自然语言集的相对优先级。
Authorization:用来告知服务器,用户代理的认证信息。
Expect:客户端使用首部字段Except来告知服务器,期望出现的某种指定行为。
From:用来告知服务器使用用户代理的用户的电子邮件地址。
Host:告知服务器,请求的资源所处的互联网主机名和端口号。Host首部字段在HTTP/1.1规范内是唯一一个必须包含在请求内的首部字段。
If-Match:类似于If-xxx这样的请求首部,可以称为条件请求。
If-Modified-Since:告知服务器若该字段值早于资源的更新时间,则希望能处理该请求。
If-None-Match:该字段值得实体标记值与请求资源的ETag不一致时,它就告知服务器处理该请求。
If-Range:它告知服务器若指定的If-Range字段值和请求资源的ETag值或时间相一致时,则作为范围请求处理。反之则返回全体资源。
If-Unmodified-Since:告知服务器,指定的请求资源只有在字段值内指定的日期时间之后,未发生更新的情况下,才能处理请求。
Max-Forwards:通过TRACE方法或OPTIONS方法,发送包含首部字段Max-Forwards的请求时,该字段以十进制整数形式指定可经过的服务器最大数目。当服务器接收到Max-Forwards值为0的请求时,则不再进行转发,而是直接返回响应。
Proxy-Authorization:客户端会发送包含首部字段Proxy-Authorization的请求,以告知服务器认证所需要的信息。
Range:告知服务器资源的指定范围。
TE:告知服务器客户端能够处理响应的传输编码方式及相对优先级。
User-Agent:将创建请求的浏览器用户代理名称等信息传达给服务器。
响应首部字段:响应首部字段是由服务器端向客户端返回响应报文中所使用的字段,用于补充响应的附加信息、服务器信息、以及对客户端的附加要求等信息。
Accept-Ranges:用来告知客户端服务器是否能够处理范围请求,以指定获取服务器端某个部分的资源。
Age:告知客户端,源服务器在多久前创建了响应。单位秒。
ETag:告知客户端实体标识,它是一种可将资源以字符串形式做唯一标识的方式。
Location:可以将响应接收方引导至某个与请求URI位置不同的资源。
Proxy-Authenticate:把由代理服务器所要求的认证信息发送给客户端。
Retry-After:告知客户端应该在多久之后再次发送请求。
Server:告知客户端当前服务器上安装的HTTP服务器应用程序的信息。
Vary:可对缓存进行控制,源服务器回向代理服务器传达关于本地缓存使用方法的命令。
WWW-Authenticate:用于HTTP访问认证。
实体首部字段:包含在请求报文和响应报文中的实体部分所使用的首部,用于补充内容的更新时间等与实体相关的信息。
Allow:用于通知客户端能够支持Request-URI指定资源的所有HTTP方法。
Content-Encoding:告知客户端服务器对实体的主体部分选用的内容编码方式。(gzip/compress/deflate/identity)
Content-Language:告知客户端,实体主体使用的自然语言。(中文或英文等语言)
Content-Length:表明了实体主体部分的大小。
Content-Location:给出与报文主体返回资源对应的URI。
Content-MD5:是一串由MD5算法生成的值,其目的在于检查报文主体在传输过程中是否保持完整,以及确认传输到达。
Content-Range:针对范围请求,返回响应时使用的首部字段,能告知客户端作为相应返回的实体的哪个部分符合范围请求。
Content-Type:说明了实体主体内对象的媒体类型,该字段用type/subtype形式赋值。
Expires:会将资源失效的日期告知客户端。
Last-Modified:指明资源最终修改的时间。
管理服务器与客户端之间状态的Cookie。其工作机制是用户识别以及状态管理。调用Cookie时,由于可校验Cookie的有效期,以及发送方的域、路径、协议等信息。
Set-Cookie字段的几个属性:
expires属性:指定浏览器可发送Cookie的有效期。
path属性:可用于限制指定Cookie的发送范围的文件目录。
domain属性:指定的域名。
secure属性:用于限制Web页面仅在HTTPS安全连接时才可以发送Cookie。
HTTPOnly:Cookie的扩展功能,它使JavaScript脚本无法获得Cookie。其主要目的是为了防止跨站脚本攻击对Cookie的信息窃取。
HTTP知识普及系列:HTTP首部
标签:
原文地址:http://www.cnblogs.com/lizhengtan/p/5494089.html
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
36.VUE — 认识 Webpack 和 安装
2021-07-28
【PHP】上传图片翻转问题
2021-07-28
php对数字进行万。亿的转化
2021-07-28
五个 .NET 性能小贴士
2021-07-28
Three.js中显示坐标轴、平面、球体、四方体
2021-07-28
.net 5+ 知新:【1】 .Net 5 基本概念和开发环境搭建
2021-07-27
1.html,css
2021-07-27
基于Docker搭建 Php-fpm + Nginx 环境
2021-07-27
nginx + http + svn
2021-07-27
kubernets kube-proxy的代理 iptables和ipvs
2021-07-26
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!