HTTP基础知识(六)

HTTP基础知识(六)

六、HTTP首部

1、HTTP请求报文:由方法、URI、HTTP版本、HTTP首部字段等部分构成。

HTTP响应报文由HTTP版本、状态码、HTTP首部字段构成。

HTTP首部字段主要用于传递额外信息(如:报文主体大小、所使用语言、认证信息等)。

2、HTTP首部字段类型

通用首部字段(General Header Fields):请求报文和响应报文两方都会使用的首部。

请求首部字段(Request Header Fields):从客户端向服务器端发送请求报文时使用的首部。

响应首部字段(Response Header Fields):从服务器端向客户端返回响应报文时使用的首部。

实体首部字段(Entity Header Fields):针对请求报文和响应报文的实体部分使用的首部。

HTTP/1.1的首部字段介绍在之前的已有

3、HTTP首部字段的分类:

(1)端到端首部(End-to-end Header)

分在此类别中的首部会转发给请求/响应对应的最终接受目标,且必须保存在由缓存生成的响应中,另外规定它必须被转发。

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

分在此类别中的首部只对单次转发有效,会因通过缓存或代理而不再转发。

属于逐跳首部的字段有8个,分别是:

4、HTTP/1.1通用首部字段

(1)Cache-Control

此字段用于操作缓存的行为。

指令的参数是可选的,多个指令之间通过“,”分隔。

缓存请求指令:

指令 参数 说明
no-cache 强制向源服务器再次认证
no-store 不缓存请求或响应的任何内容
max-age = [秒] 必需 接受已过期的响应
max-stale = [秒] 可省略 接受已过期的响应
min-fresh = [秒] 必需 期望在指定时间内的响应仍有效
no-transform 代理不可更改媒体类型
only-if-cached 从缓存获取资源
cache-extrension - 新指令标记(token)

缓存响应指令

指令 参数 说明
public 可向任意方提供响应的缓存
private 可省略 仅向特定用户返回响应
no-cache 可省略 缓存前必须先确认其有效性
no-store 不缓存请求或响应的任何内容
no-transform 代理不可更改媒体类型
must-revaildate 可缓存但必须再向源服务器进行确认
proxy-revalidate 要求中间换缓存服务器对缓存的响应有效性再进行确认
max-age = [秒] 必需 响应最大Age值
s-maxage = [秒] 必需 公共缓存服务器响应的最大Age值
cache-extension - 新指令标记(token)

(2)Connection

作用:控制不再转发给代理的首部字段;管理持久连接。

指令 参数 说明
不在转发的首部字段名 控制不再转发给代理的首部字段
close 客户端与服务器端断开连接
Keep-Alive 在旧版本的HTTP协议上维持持续连接

(3)Date

作用:表明创建HTTP报文的日期和时间

(4)Pragma

这是一个HTTP/1.1之前版本的历史遗留字段,仅作为与HTTP/1.0的向后兼容而定义

它只有一种定义:Pragma:no-cache

(5)Trailer

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

(6)Transfer-Encoding

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

HTTP/1.1的传输编码方式仅对分块传输编码有效

(7)Upgrade

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

使用Upgrade时,还需要额外指定Connection:Upgrade

(8)Via

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

Via首部经常回合TRACE方法一起使用。

(9)Warning

作用:告知用户一些与缓存相关的问题的警告。

Warning首部的格式:Warning:[警告码] [警告的主机:端口号] "[警告内容]" ([日期时间])

警告码 警告内容 说明
110 Response is stale(响应已过期) 代理返回已过期的资源
111 Revalidation failed(再验证失败) 代理再验证资源有效性时失败(服务器无法到达等原因)
112 Disconnection operation(断开连接操作) 代理与互联网连接被故意切断
113 Heuristic expiration(试探性过期) 响应的试用期超过24小时(有效缓存的设定时间大于24小时的情况下)
199 Miscellaneous warning(杂项警告) 任意的警告内容
214 Transformation applied(使用了转换) 代理对内容编码或媒体类型等执行了某些处理时
299 Miscellaneous persistent warning(持久杂项警告) 任意的警告内容

5、请求首部字段

(0)、概念:请求首部字段是从客户端网服务器端放松请求报文中所使用的字段,用于补充请求的附加信息、客户端信息、 对响应内容相关的优先级等内容。

(1)Accept

作用:可通知服务器,用户能够处理的媒体类型及媒体类型的相对优先级。

当服务器提供多种内容时,将会首先返回权重值最高的媒体类型。

(2)Accept-Charset

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

可一次性指定多种字符集。

(3)Accept-Encoding

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

(4)Accept-Language

作用:告知服务器用户代理能够代理的自然语言集,以及自然语言集的相对优先级。可一次指定多种自然语言集。

(5)Anthorization

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

(6)Expect

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

若服务器无法理解客户端的期望作出回应而发生错误时,会返回状态码417Expectation Failed

(7)From

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

(8)Host

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

(9)If-Match(条件请求)

作用:服务器接收到附带条件的请求后,只有判断指定条件为真时,才会执行请求。

若不一致则返回412Precondition Failed的响应。

(10)If-Modified-Since

作用:告知服务器若If-Modified-Since字段值早于资源的更新时间,则希望能处理该请求。

若If-Modified-Since字段值之后的时间里资源都没有更新,则返回304Not Modified响应。

(11)If-None-Match

和首部字段If-Match作用相反。

(12)If-Range

作用:告知服务器若指定的If-Range字段值和请求资源的ETag值或时间相一致时,则作为范围请求处理。否则返回全体资源。

(13)If-Unmodified-Since

作用与If-Modified-Since相反。

(14)Max-Forwards

作用:以十进制整数形式指定可经过的服务器最大数目。

服务器在往下一个服务器转发请求之前,Max-Forwards的只减1后重新赋值。当Max-Forwards值为0时,则不再进行转发,而是直接返回响应。

(15)Proxy-Authorization

作用:告知服务器认证所需要的信息。

(16)Range

作用:对于只需获取部分资源的范围请求,此字段即可告知服务器资源的指定范围。

(17)Referer

作用:告知服务器请求的原始资源的URI。

(18)TE

作用:告知服务器客户端能够处理响应的传输编码方式及相对优先级。

(19)User-Agent

作用:将创建请求的浏览器和用户代理名称等信息传达给服务器。

6、响应首部字段

(0)概念:是由服务器端向客户端返回响应报文中所使用的字段,用于补充响应的附加信息、服务器信息,以及对客户端的附加要求等信息。

(1)Accept-Ranges

作用:告知客户端服务器是否能处理范围请求,以指定获取服务器某个部分的资源。

(2)Age

作用:告知客户端,源服务器在多久前创建了响应。单位为秒。

(3)ETag

作用:告知客户端实体标示。是一种可将资源以字符串形式做唯一性标识的方式。

服务器会为每份资源分配对应的ETag值。资源更新时ETag值也需要更新。

(4)Location

作用:将相应接收方引导至某个与请求URI位置不同的资源。

(5)Proxy-Authenticate

作用:把代理服务器所要求的认证信息发送给客户端。

(6)Retry-After

作用:告知客户端应该在多久之后再次发送请求。

(7)Server

作用:告知客户端当前服务器上安装的HTTP服务器应用程序的信息。

(8)Vary

作用:对缓存进行控制。

(9)WWW-Authenticate

作用:用于HTTP访问认证。告知客户端适用于访问请求URI所指定的认证方案(Basic/Digest)和带参数提示的质询(challenge)

7、实体首部字段

(0)概念:包含子在请求报文和响应报文中的实体部分所使用的首部,用于补充内容的更新时间等与实体相关的信息。

(1)Content-Encoding

作用:告知客户端服务器对实体的主体部分选用的内容编码方式。

内容编码:指在不丢失实体信息的前提下所进行的压缩。

(2)Content-Language

作用:告知客户端,实体主体使用的自然语言。

(3)Content-Length

作用:表明了实体主体部分的大小,单位是字节。

对实体主体进行内容编码传输时,不能再使用Content-Length。

(4)Content-Location

作用:给出与报文主体部分相对应的URI。

(5)Content-MD5

作用:检查报文主体在传输过程汇总是否保持完整,以及确认传输到达。

(6)Content-Range

作用:告知客户端作为相应返回的实体的哪个部分符合范围请求。单位为字节。

(7)Content-Type

作用:说明了实体主体内对象的媒体类型。

(8)Expires

作用:告知客户端资源失效的日期。

(9)Last-Modified

作用:指明资源最终修改的时间。

8、为Cookie服务的首部字段

(0)概念:管理服务器与客户端之间状态的Cookie

(1)Set-Cookie

Set-Cookie字段属性

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

expires属性

作用:指定浏览器可发送Cookie的有效期。

path属性

作用:用于限制指定Cookie的发送范围的文件目录。

domain属性

作用:通过domain属性指定的域名可做到与结尾匹配一致。

secure属性

作用:用于限制web页面仅在HTTTPS安全连接时,才可以发送Cookie

HttpOnly属性

作用:使JavaScript脚本无法获得Cookie,目的为防止跨站脚本攻击(Cross-site scrioting,XSS)对Cookie的信息窃取。

9、其他首部字段

(1)X-Frame-Options

作用:用于控制网站内容在其他Web网站的Frame标签内的显示问题。

此字段有两个可指定的字段值:DENY(拒绝)、SAMEORIGIN(仅同源域名下的页面匹配时许可)

(2)X-XSS-Protection

作用:这是针对跨站脚本攻击的一种对策,用于控制浏览器XSS防护机制的开关。

字段值分为:0(将XSS过滤设置成无效状态),1(将XSS过滤设置成有效状态)

(3)DNT(Do Not Track)

作用:拒绝个人信息被收集,是表示拒绝被精准广告追踪的一种方法。

字段值分为:0(同意被追踪),1(拒绝被追踪)

(4)P3P(The Platform for Privacy Preferences,在线隐私偏好平台)

作用:可以让个人隐私变成一种仅供程序可理解的形式,以达到保护用户隐私的目的。

时间: 2024-07-30 04:40:08

HTTP基础知识(六)的相关文章

ASP.NET Core 2.2 基础知识(六) 配置(内含MySql+EF)

原文:ASP.NET Core 2.2 基础知识(六) 配置(内含MySql+EF) 先上一段代码,了解一下 .NET Core 配置数据的结构. 新建一个 控制台项目,添加一个文件 json.json ,文件内容如下: { "country": "cn", "person": { "id": 1, "address": { "addName": "chengdu"

python基础知识六 文件的基本操作+菜中菜

基础知识六 文件操作 ? open():打开 ? file:文件的位置(路径) ? mode:操作文件模式 ? encoding:文件编码方式 ? f :文件句柄 f = open("1.txt",mode = 'r',encoding = 'utf-8') print(f.read()) f.close 1.文件操作模式: ? r,w,a(重要) ? rb,wb,ab(次要) ? r+,w+,a+ 1.1 r/w/a 1. r操作: f = open('1.txt','r') pri

类、对象(java基础知识六)

1.Java约定俗成 java约定俗成 1,类名接口名 一个单词首字母大写,多个单词每个单词首字母都大写 2,方法名和变量名 一个单词全部小写,多个单词从第二个单词首字母大写 建议:如果能用英语尽量用英语,实在不行用汉语拼音 代码书写格式 1,大括号成对写,左大括号在该行代码的最后,右大括号在该行代码的下边,并与该行代码对齐 2,左大括号前面有空格 3,并排语句中间都需要加空格 4,语句块或者方法中间加空行 2.面向对象的特点 面向对象思想特点 * a:是一种更符合我们思想习惯的思想 * b:可

Linux基础知识六

1.复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#. # cp /etc/rc.d/rc.sysinit /tmp # sed -i 's/\(^[[:space:]]\)'/#\1/g /tmp/rc.sysinit 2.复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/grub.conf文件中的行首的空白字符. # cp /boot/grub/grub.conf /tmp

JavaScript基础知识六(内存释放、作用域销毁)

1.堆内存 对象数据类型或者函数数据类型在定义的时候首先会开辟一个堆内存,堆内存有一个引用的地址,如果外面有变量等于了这个地址,我们就说这个内存被占用了,就不能销毁了 我们想要让堆内存释放/销毁,只要把所有引用它的变量赋值为null即可,如果当前的堆内存没有任何东西被占用了,那么浏览器会在空闲的时候把它销毁... 2.栈内存 1)全局作用域 只有当页面关闭的时候全局作用域才会销毁 2)私有作用域(只有函数执行会产生私有的作用域) 一般情况下,函数执行会形成一个新的私有作用域,当私有作用域中的代码

赏析福建寿山石的七个基础知识

福建寿山石自1500年前的南朝以来,就因其”温润光泽,易于用刀”的特点被作为雕刻的原料, 元代篆刻家以叶蜡石作印材,使寿山石名冠“印石三宝”之首,登上文化大雅之堂.加上明.清帝王将相的百般青睐,从而形成寿山石雕刻艺术从萌芽到发展到鼎盛的一脉独特的民间工艺文化史,寿山石雕也成了上至帝王将相下至黎民百姓都喜爱的文化艺术珍品.当今,作为艺术的寿山石雕本身,可以说不论从数量上还是质量上已经发展成为一门独特的艺术.但从历史的角度看,它见载于典籍的文字史料却又如此缺乏.毋庸忌言,寿山石文化是在严重的“缺血”

【Python数据挖掘课程】六.Numpy、Pandas和Matplotlib包基础知识

前面几篇文章采用的案例的方法进行介绍的,这篇文章主要介绍Python常用的扩展包,同时结合数据挖掘相关知识介绍该包具体的用法,主要介绍Numpy.Pandas和Matplotlib三个包.目录:        一.Python常用扩展包        二.Numpy科学计算包        三.Pandas数据分析包        四.Matplotlib绘图包 前文推荐:       [Python数据挖掘课程]一.安装Python及爬虫入门介绍       [Python数据挖掘课程]二.K

java基础知识回顾之java Thread类学习(六)--java多线程同步函数用的锁

1.验证同步函数使用的锁----普通方法使用的锁 思路:创建两个线程,同时操作同一个资源,还是用卖票的例子来验证.创建好两个线程t1,t2,t1线程走同步代码块操作tickets,t2,线程走同步函数封装的代码操作tickets,同步代码块中的锁我们可以指定.假设我们事先不知道同步函数用的是什么锁:如果在同步代码块中指定的某个锁(测试)和同步函数用的锁相同,就不会出现线程安全问题,如果锁不相同,就会发生线程安全问题. 看下面的代码:t1线程用的同步锁是obj,t2线程在操作同步函数的资源,假设不

[SQL] SQL 基础知识梳理(六)- 函数、谓词、CASE 表达式

SQL 基础知识梳理(六)-  函数.谓词.CASE 表达式 目录 函数 谓词 CASE 表达式 一.函数 1.函数:输入某一值得到相应输出结果的功能,输入值称为“参数”,输出值称为“返回值”. 2.函数的种类: (1)算术函数 - 数值计算 (2)字符串函数 - 字符串操作 (3)日期函数 - 日期操作 (4)转换函数 - 转换数据类型 (5)聚合函数 - 数据聚合 3.算术函数(加.减.乘.除):+.-.*./ [备注]数据类型 NUMBERIC(全体位数,小数位数)可以指定数值的大小. C