本文主要是介绍http首部,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1. htttp 报文首部
-
报文结构为:首部 空行(CR+LF)主体
-
在请求中 http报文首部由请求方法,URI,http版本,首部字段等构成
-
在响应中:状态码,http版本,首部字段3部分构成
2. http 首部字段
-
给浏览器和服务器提供报文主体大小,所使用语言,认证信息等
-
字段结构 为 首部字段名:字段值 例如 content-Type:text/html
3. http/1.1 通用首部字段
-
请求报文和响应报文都会使用的首部
-
首部字段cache-control 指令,操作缓存工作机制,可用于请求和响应
-
cache-control: private ,max-age=0,no-cache,
-
private : 缓存服务器会对该特定用户提供资源缓存的服务
-
public:表示其他用户也可以利用缓存
-
no-cache: 客户端请求使用no-cache表示客户端将不接收缓存响应,缓存服务器必须把请求转发给源服务器;从服务器端响应中包含no-cache表示 缓存服务器将不能对资源进行缓存,,源服务器也不在对缓存服务器请求中提出的资源有效性进行确认 。
-
no-store: 请求或者响应的任一部分都不缓存在本地存储
-
max-age: 请求中包含的话表示 缓存资源的缓存时间比指定时间数值更小,则客户端就接收缓存资源,值为0时说明需要将缓存服务器转发给源服务器;响应中包含max-age;时,表示缓存服务器不对该时间内资源的有效性再作确认,值则表示资源保存为缓存的最长时间。
-
only-if-cached指令 从缓存获取资源
-
connection : keep-alive close ,在http/1.1版本默认连接时持久连接,之前版本则是非持久连接,所有老版本要用keep-alive值,close 表示断开连接
-
pargma:no-cache 只用在客户端请求中,表示要求中间服务器不返回缓存的资源。
4. 请求首部字段
- Accept :text/html application/xhtml+xml, 通知服务器 自己需要的资源格式(可以是多种格式),以及格式的优先级(q= ,权重,0到1之间,1为最大值和默认值,)
- Accept-Charset : unicode-1-1; q=0.8 ,通知服务器 希望接收客户端所支持的字符集,以及字符集的优先级,
- Accept-Encoding: gzip 通知服务器 用户代理所支持的内容编码
- Accept-Language: 用户代理所支持的语言集
- Authorization 用户代理的认证信息,(与状态码401有关)
- Expect 期望某种特定的行为(与状态码417有关)
Host (必要字段):告知服务器请求的资源所处的互联网主机名和端口号
等等
5. 响应首部字段
由服务器端向客户端返回响应报文中所使用的字段
Accept-Ranges :bytes 或者none, 告知客户端服务器是否能处理范围请求
Age: 告知客户端,源服务器在多久之前创建了响应。值单位为秒。
Location : 与重定向URI 相关,与状态码(3XX)相关
Aetry-After: 告知客户端在多久之后重试再次发送请求
Serve :告知客户端服务器上安装的http 服务器应用程序的信息
Vary : 对缓存进行控制,源服务器会向代理服务器传达关于本地缓存使用方法的命令,仅仅对请求中含有相同vary 指定首部字段的请求返回缓存。
6. 实体首部字段
请求和响应 实体content所使用的首部字段
- Content-Type: 资源类型
7. 为cookie 服务的首部字段
cookie 工作机制用户识别以及状态管理,web网站为了管理用户状态,会通过web浏览器,把一些数据l临时写入调用用户的计算机内,接着当用户访问该web网站时,可通过通信方式取回之前发放的Cookie。由于可校验cookie 有效期以及发送方的域,路径,协议等信息,所以正规发布的Cookie内的数据不会因来自其他web站点和攻击者的攻击而泄漏。
expires =Date Cookie 有效期
path=PATH 将服务器上的文件目录作为cookie 的使用对象
domain 作为cookie 适用对象的域名
Secure 仅在https 安全通信时才发送cookie
HttpOnly 加以限制,使Cookie 不能被js脚本访问
8. 其他首部字段
- X-Frame-option: 属于响应首部,用于控制网站内容在其他Web 网站的Frame标签内显示的问题 DENY (拒绝); SAMEORIGIN : 仅在同源域名下的页面匹配上许可,也就是说可以放在frame标签内显示。
DNT 属于请求首部 拒绝个人信息被收集 0 :同意被追踪,1 : 拒绝被追踪
P3P 响应首部 ,保护用户隐私
这篇关于http首部的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!