ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

HTTP_06_HTTP首部

2020-02-26 16:40:57  阅读:224  来源: 互联网

标签:缓存 06 首部 报文 Cookie 服务器 HTTP


HTTP首部字段

使用首部字段是为了给浏览器和服务器提供报文主体大小、所使用的语言、认证信息等。

HTTP报文 分类描述(请求报文/响应报文) 详细描述
报文首部 请求行/状态行 方法、URI、HTTP版本
请求首部字段/响应首部字段 HTTP首部字段
通用首部字段 HTTP首部字段
实体首部字段 HTTP首部字段
其他
空行(CR+LF)
报文主体

HTTP首部字段结构

首部字段名:字段值

例如:

Content-Type: text/html 表示报文主体的对象类型

Keep-Alive: timeout=15, max=100 HTTP首部字段可以有多个值

HTTP/1.1 规范定义了47种首部字段,除此之外还有Cookie、Set-Cookie和Content-Disposition等首部字段。

缓存代理行为

HTTP首部字段定义缓存代理和非缓存代理的行为,分为2类。

端对端首部(End-to-end Header)

此类中首部会转发给请求/响应对应的最终接收目标,且必须保存在有缓存生成的响应中,它必须被转发。

逐跳首部(Hop-by-hop Header)

此类中首部只对单次转发有效,会因通过缓存或代理而不再转发,需提供Connection字段。

HTTP/1.1 通用首部字段

Cache-Control

操作缓存的工作机制。

Cache-Control: private, max-age=0, no-cache

表示能否缓存的指令

public:明确表明其他用户也可利用缓存。

private:响应只以特定的用户作为对象。

no-cache:防止从缓存中返回过期的资源。(缓存会向服务器进行有效期确认后再处理资源)

控制可执行缓存的对象的指令

no-store:请求或响应中包含机密信息,缓存不能在本地存储请求或响应的任一部分。

指定缓存期限和认证的指令

s-maxage:适用于供多位用户使用的公共缓存服务器

max-age:如果判定缓存资源的缓存时间数值比指定时间的数值更小,那么客户端就接收缓存的资源。若执行max-age=0,那么缓存服务器通常需要将请求转发给源服务器。

min-fresh:要求缓存服务器返回至少还未过指定时间的缓存资源。

max-stale:指示缓存资源即使过期也照常接收。

only-if-cached:客户端仅在缓存服务器本地缓存目标资源的情况下才会要求其返回。

。。。。。。

Connection

  • 控制不再转发给代理的首部字段
  • 控制持久连接

Date

表明创建HTTP报文的日期和时间。

Pragma

历史遗留字段,只有一种形式Pragma:no-cache,

发送的请求一般同时包含以下两个首部字段

Cache-Control: no-cache
Pragma: no-cache

Trailer

事先说明在报文主体后记录了哪些首部字段。

Transfer-Encoding

规定了传输报文主体时采用的编码方式。

例如:Transfer-Encoding: chhunked

Upgrade

用于检测HTTP协议及其他协议是否可使用更高的版本进行通信。

Via

为了追踪客户端与服务器之间的请求和响应报文的传输路径。

Warning

通常会告知用户一些与缓存相关的问题的警告。

请求首部字段

是从客户端往服务器端发送请求报文中所使用的字段,用来补充请求的附加信息、客户端信息、对响应内容相关的优先级等内容。

Accept

通知服务器,用户代理能够处理的媒体类型及媒体类型对应的优先级。

媒体类型:

文本文件:text/html, text/plain, text/css … application/xhtml+xml, application/xml …

图片文件:image/jpeg, image/gif, image/png …

视频文件:video/mpeg, video/quicktime …

应用程序使用的二进制文件:aplication/octet-stream, application.zip …

使用q=来表示权重值,范围在0-1,默认权重为q=1.0。

Accept-Charset

通知服务器用户代理支持的字符集及字符集的相对优先顺序。

Accept-Encoding

用来告知服务器用户代理支持的内容编码及内容编码的优先顺序。

例子:

Accept-Encoding: gzip, deflate

编码格式:gzip、compress、deflate、identity

Accept-Language

告知服务器用户代理能够处理的自然语言集(中文或英文等),以及自然语言集的相对优先级。

Authorization

用来告知服务器,用户代理的认证信息(证书值)。

Expect

告知服务器期望出现的某种特定行为。

From

告知服务器使用用户代理的用户的电子邮件地址。

Host

告知服务器,请求的资源所处的互联网主机名和端口号。

If-Match

服务器会比对If-Match的字段值和资源的Etag值,仅当两者一致时才会执行请求。

若If-Match的字段值为*时,服务器将会忽略Etag的值,只要资源存在就处理请求。

If-Modified-Since

if-None-Match

If-Range

If-Unmodified-Since

Max-Forwards

Proxy-Authorization

Range

Referfer

TE

User-Agent

响应首部字段

Accept-Ranges

Age

Etag

Location

Proxy-Authenticate

Retry-After

Server

Vary

WWW-Authenticate

实体首部字段

Allow

Content-Encoding

Content-Language

Content-Length

Content-Location

Content-MD5

Content-Range

Content-Type

Expires

Last-Modified

为Cookie服务的首部字段

Cookie的工作机制是用户识别及状态管理。

首部字段名 说明 首部类型
Set-Cookie 开始状态管理所使用的Cookie信息 响应首部字段
Cookie 服务器接收到的Cookie信息 请求首部字段

Set-Cookie

当服务器准备开始管理客户端的状态时,会事先告知的各种信息。

Set-Cookie的字段值:

属性 说明
NAME=VALUE 赋予Cookie的名称和值
expires=DATE Cookie的有效期(若无则默认浏览器关闭前为止)
path=PATH 将服务器上的文件目录作为Cookie的使用对象
domain=域名 作为Cookie适用对象的域名
Secure 仅在HTTPS安全通信时才会发送Cookie
HttpOnly 加以限制,使Cookie不能被JavaScript脚本访问

Cookie

Cookie: status=enable
Grayan 发布了135 篇原创文章 · 获赞 70 · 访问量 4万+ 私信 关注

标签:缓存,06,首部,报文,Cookie,服务器,HTTP
来源: https://blog.csdn.net/weixin_43851310/article/details/104519335

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有