第六章、HTTP首部

<非常重要且恐怖的一章了>

HTTP报文=报文首部+(CR+LF)+报文实体

首部字段:
HTTP报文首部字段=(首部字段名:字段值)们
---类型*4:
  通用首部字段(请求&响应都可用);请求首部字段;响应首部字段;实体首部字段

-------------------------------------------------------通用首部字段-------------------------------------------------
Cache-Contorl:控制缓存行为,操作缓存的工作机制
  //Cache-Control:public/private/不缓存过期缓存:no-cache=Location|空(无参数表示可以使用缓存)
  /不缓存:no-store/对于公共缓存器,指定缓存期限和认证:s-maxage=秒数
  /接收缓存过期没超过指定时间的缓存:max-age=秒数
  /接收指定缓存时间内任有效的缓存:min-fresh=秒数
  /接收指定时间内的缓存,无论过期与否:max-stale=秒数
  /缓存服务器本地缓存了目标资源且不加载响应和有效性:only-if-cache
  /再次验证即将返回的缓存是否有效:must-ravalidate
  /要求缓存服务器收到客户端要求响应前检查返回的缓存:proxy-ravalidate
  /不允许改变缓存的媒体类型,防止缓存被压缩:no-transform
Connection:逐跳首部和连接的管理
  //逐跳首部/控制代理不再转发|转发前删除的首部字段:Connection:不再转发的首部字段
  //管理持久连接:Connection:close|Keep-Alive(非默认持久连接的HTTP版本指定)
Date:创建该报文的时间
Pragma:报文指令
  //客户端要求所有的中间服务器不返回缓存的资源:Pragma:no-cache
Trailer:首部一览,位于报文尾端
  //事先说明在报文主体中记录了哪些首部字段,该首部字段可应用在1.1版本分块传输编码时
Transfer-Encoding:报文主体的分块传输编码方式
Upgrace:协议的升级,用于检测HTTP协议是否可用高版本的协议通信,使用时需要再指定Connection:Upgrace
Via:经过的代理服务器的相关信息,用来追踪报文的转发,避免请求回环的发生
Warning:错误通知
  //通常会告知用户一些与缓存相关的错误
  //格式:Warning:[警告码][警告的主机:端口号]"[警告内容]"([日期时间])

----------------------------------------------请求首部字段---------------------------------------------------
Accept:用户代理可处理的媒体类型
  //通知服务器用户代理指定的<多个>媒体联系和媒体类型间的相对优先关系
  //Accept: type/subtype1(类型);q=0.3,type/subtype2,type/subtype3;q=0.8,type/subtype4;q=0.5
  //逗号分隔类型与类型,分号分隔类型名与权重q,不写权重默认为1.0最大,权重可精确到小数点后三位。
Accept-Charset:优先的字符集
  //通知服务器用户代理指定的<多个>字符集和字符集间的相对优先关系
  //优先级由权重q决定,格式与Accept相同
Accept-Encoding:优先的内容编码
  //通知服务器用户代理指定的<多个>内容编码和内容编码间的相对优先关系
  //优先级由权重q决定,格式与Accept相同,同时可用“*”表示指定任意的内容编码
  //内容编码例子:gzip;compress;deflate;identify
Accept-Language:优先的自然语言
  //通知服务器用户代理指定的<多个>自然语言和自然语言间的相对优先关系
  //优先级由权重q决定,格式与Accept相同
  //例子:Accept-Language:zh-ch,zh;q=0.7,en-us,en;q=0.3
Authorization:Web/用户代理的认证信息
Expect:期待服务器的特定行为
  //HTTP1.1:Expect:100-Continue(状态码100 Continue)
  //服务器无法理解时会返回状态码417 Expectation Failed
From:用户的电子邮箱地址
Host:请求资源所在服务器(必须包含)
************if-xxxx样式的请求首部字段称为条件请求,服务器收到附带条件的请求时,当判断条件为真时才会执行请求
If-Match:比较值是否等于E-Tag实体标记
  //此时服务器无法使用弱ETag,≠则返回412 Precondtion Failed
  //若If-Match:*,服务器会忽略ETag,只要资源存在即可处理请求
If-None-Match:比较值是否不等于实体标记(与If-Match相反)
If-Range:资源未更新时发送实体Byte的范围请求
  //字段值若是跟ETag值或更新日期时间一致,那么就返回为范围内资源,反之则返回全体资源
If-Modified-Since:比较资源是否更新/更新时间
  //如果在字段指定的日期时间后资源发生了更新,服务器就会接受请求
If-Unmodified-Since:比较资源是否更新/更新时间(与If-Modified-Since相反)
  //如果在字段指定的日期时间后资源未发生更新,服务器就会接受请求
Max-Forwards:最大的传输直跳数(十进制),经过一个代理是数值减一,数值为0时返回响应
Proxy-Authorization:代理服务器要求客户端的认证信息(服务器和客户端的使用Authorization)
Range:获取实体的字节范围请求
Referer:告知服务器请求的原始资源的URI
TE:传输编码的优先级
  //除了指定传输编码之外,还可以指定伴随trailer字段的分块传输编码的方式--TE:trailer
User-Agent:将创建请求的HTTP客户端(代理或浏览器)程序的信息传给服务器

----------------------------------------------------响应首部字段-------------------------------------------------
Accept-Ranges:是否接受字节范围请求
  //Accepy-Ranges:bytes(接受)|none(不接受)
Age:推算资源创建经过的时间/秒
ETag:资源的对应匹配信息
  //资源更新时,对应的ETag值也会更新
  //相同URI不同的语言版本的资源是不同的,此时他们的ETag也是不同的
  //强弱ETag:强---资源发生一点点细微变化ETag都会变化;弱--用于提示资源是否相同,只有根本性变化会影响它,这时,弱ETag会在字段值最开始处附加W,例子:ETag:W/"usagi-1234"
Location:令客户端重定向至URI
  //配合3开头的状态字提供重定向的URI,几乎所有浏览器都会强制访问已提示的重定向资源
Proxy-Authenticate:代理服务器对客户端的认证信息
Retry-After:再次发起请求的时机要求(字段值为日期时间)
Server:HTTP服务器的安装信息
Vary:代理服务器缓存的管理信息
WWW-Authenticate:服务器对客户端的认证信息

--------------------------------------------------实体首部字段---------------------------------------------------
Allow:资源可支持的HTTP方法
Content-Encoding:适用的内容编程方式(gzip;compress;daflate;indetity)
  //内容编码是指在不丢失实体信息的前提下所进行的压缩
Content-Language:自然语言(中/英)
Content-Length:实体主体的大小/字节
Content-Location:报文主体返回资源的对应URI
Content-MD5:报文摘要
  //是一串由MD5算法生成的值,目的在于检查报文主体在传输中是否保持完整
Content-Range:位置范围
  //告知客户点作为响应返回的实体哪个部分符合范围请求
Content-Type:媒体类型
Expires:过期的日期时间
  //在指定的时间之前,响应的缓存副本会一直被保存,超期之后缓存服务器会再次向源服务器请求资源
Last-Modified:资源最后的修改日期时间

---------------------------------------------------其他非HTTP1.1首部字段----------------------------------------
Cookie/Set-Cookie/Content-Disposition-------132-140未看

《图解HTTP》阅读笔记--第六章--HTTP首部的更多相关文章

  1. 深入理解 C 指针阅读笔记 -- 第六章

    Chapter6.h #ifndef __CHAPTER_6_ #define __CHAPTER_6_ /*<深入理解C指针>学习笔记 -- 第六章*/ typedef struct _ ...

  2. Hadoop阅读笔记(六)——洞悉Hadoop序列化机制Writable

    酒,是个好东西,前提要适量.今天参加了公司的年会,主题就是吃.喝.吹,除了那些天生话唠外,大部分人需要加点酒来作催化剂,让一个平时沉默寡言的码农也能成为一个喷子!在大家推杯换盏之际,难免一些画面浮现脑 ...

  3. Android群英传笔记——第六章:Android绘图机制与处理技巧

    Android群英传笔记--第六章:Android绘图机制与处理技巧 一直在情调,时间都是可以自己调节的,不然世界上哪有这么多牛X的人 今天就开始读第六章了,算日子也刚好一个月了,一个月就读一半,这效 ...

  4. JVM学习笔记-第六章-类文件结构

    JVM学习笔记-第六章-类文件结构 6.3 Class类文件的结构 本章中,笔者只是通俗地将任意一个有效的类或接口锁应当满足的格式称为"Class文件格式",实际上它完全不需要以磁 ...

  5. 第六章 HTTP首部

    第六章 HTTP首部 HTTP首部包括:请求行<方法,URI,版本号>/响应行<版本,状态码>.请求/响应首部字段.通用首部字段.实体首部字段 1.HTTP首部字段 HTTP首 ...

  6. 《图解HTTP》阅读笔记--第十一章针对web的攻击技术

    第十一章.针对WEB的攻击技术 ----<图解HTTP>阅读笔记攻击目标---Web简单的HTTP协议本身并不存在安全性 问题,协议本身并不会成为被攻击的对象,应用HTTP的服务器和客户端 ...

  7. 《Microsoft Sql server 2008 Internals》读书笔记--第六章Indexes:Internals and Management(1)

    <Microsoft Sql server 2008 Internals>索引文件夹: <Microsoft Sql server 2008 Internals>读书笔记--文 ...

  8. C Primer Plus 学习笔记 -- 前六章

    记录自己学习C Primer Plus的学习笔记 第一章 C语言高效在于C语言通常是汇编语言才具有的微调控能力设计的一系列内部指令 C不是面向对象编程 编译器把源代码转化成中间代码,链接器把中间代码和 ...

  9. C primer plus 读书笔记第六章和第七章

    这两章的标题是C控制语句:循环以及C控制语句:分支和跳转.之所以一起讲,是因为这两章内容都是讲控制语句. 第六章的第一段示例代码 /* summing.c --对用户输入的整数求和 */ #inclu ...

随机推荐

  1. $route路由

    <!DOCTYPE html><html ng-app="AngularApp"> <head> <meta charset=" ...

  2. [置顶] 从零制作文件系统到JZ2440,使其支持telnet , ftp 和tftp

    转自:http://mp.weixin.qq.com/s?__biz=MzAxNTAyOTczMw==&mid=2649328515&idx=1&sn=5849fba4b44e ...

  3. 解决django不能以本机ip地址访问

    在使用django框架来架设网站时,我们测试一般是通过django的开发服务器来完成,但是我们可以看到生成的地址是127.0.0.1:8000这样的话,我们在外网就无法访问了. 解决办法是通过传入第三 ...

  4. 12-21C#电脑蓝屏效果(可以恶搞整人哦)、输入输出流(StreamReader/streamWriter)

    一.winform电脑蓝屏效果 第一种方法:基本操作: 第一步:创建一个新的C#窗体“Form1”: 第二步:在设计窗口中,更改其属性: 1)text属性:将form1的text属性中的文字取消掉,然 ...

  5. 安装 MongoDB。

    1.安装 MongoDB. 1.为软件包管理系统导入公钥. Ubuntu 软件包管理工具为了保证软件包的一致性和可靠性需要用 GPG 密钥检验软件包.使用下列命令导入 MongoDB 的 GPG 密钥 ...

  6. 如何实现1080P延迟低于500ms的实时超清直播传输技术<转>

    转载地址:http://www.yunweipai.com/archives/9037.html 最近由于公司业务关系,需要一个在公网上能实时互动超清视频的架构和技术方案.众所周知,视频直播用 CDN ...

  7. 通过Excel导入Mysql 超过65535条数据的办法

    1.截取 65534条数据,进行分sheet,然后1个sheet导入一张表,最后进行整合! 2.采用TXT导入方式,TXT的导入暂时没发现限制的数据条数,下午用TXT导入74万条数据成功 3.如果遇到 ...

  8. java之静态函数和静态变量

    静态变量: 静态变量好似一种成员变量,它的特点是前面有static. 普通变量会有多份,它在每个对象当中都存在,但是静态变量只有一份,它是属于类的. 静态变量的调用方法: 1.类名.变量名 Custo ...

  9. JAVA语法规则总结

    单继承多实现 抽象类  抽象方法 使用关键字:abstract修饰的方法就是抽象方法; 抽象方法的形式:只有方法的声明,没有方法体; 抽象方法一般存在于父类中,相当于强制要求子类必须重写该方法,相当于 ...

  10. ZROI2018提高day1t1

    传送门 分析 在考场上我通过画图发现了对于n个点肯定用一个六边形围起来最优(假装四边形是特殊的六边形),我们发现可以将这个六边形分成两个梯形(梯形的高可以为0),然后我们便枚举两个梯形共同的底边和它们 ...