《图解HTTP》阅读笔记--第六章--HTTP首部
第六章、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未看
转载于:https://www.cnblogs.com/Phoebe-Yun/p/9645811.html
《图解HTTP》阅读笔记--第六章--HTTP首部相关推荐
- 深入理解 C 指针阅读笔记 -- 第六章
Chapter6.h #ifndef __CHAPTER_6_ #define __CHAPTER_6_/*<深入理解C指针>学习笔记 -- 第六章*/typedef struct __p ...
- Computer Vision: A Modern Approach - 计算机视觉书籍阅读笔记 -第六章 - 纹理
Book name : Computer Vision: A Modern Approach Book URL: https://www.academia.edu/38213969/Computer_ ...
- thinking in java 阅读笔记 第六章 类再生
1.介绍了合成和继承,第一章就介绍过,这里详细的介绍了一下. 2.介绍了继承关系初始化构建方法调用顺序,这些东西建议阅读<<深入理解java虚拟机>>讲得更加透彻. 3.到底选 ...
- Unix原理与应用学习笔记----第六章 文件的基本属性2
Unix原理与应用学习笔记----第六章 文件的基本属性2 改变文件权限命令:chmod 提示:文件或目录创建后,就被赋予一组默认的权限.所有的用户都有读,只有文件的所有者才有写. 相对权限设置 Ch ...
- 《Go语言圣经》学习笔记 第六章 方法
<Go语言圣经>学习笔记 第六章 方法 目录 方法声明 基于指针对象的方法 通过嵌入结构体来扩展类型 方法值和方法表达式 示例:Bit数组 封装 注:学习<Go语言圣经>笔记, ...
- 《疯狂Java讲义》学习笔记 第六章 面向对象(下)
<疯狂Java讲义>学习笔记 第六章 面向对象(下) 6.1包装类 基本数据类型 包装类 byte Byte short Short int Integer long Long char ...
- 《信息与编码》考试复习笔记6----第六章连续信源熵和信道容量(考点在连续信道容量)
系列文章链接目录 一.<信息与编码>考试复习笔记1----第一章概论 二.<信息与编码>考试复习笔记2----第二章离散信息源 三.<信息与编码>考试复习笔记2-- ...
- 《Python从入门到实践》读书笔记——第六章 字典
<Python从入门到实践>读书笔记--第六章 字典 1. 一个简单的字典 alien_0 = {'color': 'green', 'points': 5}print(alien_0[' ...
- 《金融学》笔记 第六章 金融机构
<金融学>笔记 第六章 金融机构 前言 在<<金融学>笔记>中开了一个头,现在完善具体细节. 金融范畴篇 第一章 货币的本质 第二章 货币制度 第三章 信用.利息和 ...
- Linux(b站视频兄弟连)自学笔记第六章——软件包管理
Linux(b站视频兄弟连)自学笔记第六章--软件包管理 简介 软件包分类 RPM命令管理 包命令与依赖性 安装升级与卸载 查询 校验和文件提取 yum在线管理 IP地址的配置和网络yum源 yum命 ...
最新文章
- IOS中Json解析的四种方法
- 【PAT】B1070 结绳(25 分)
- leetcode练习——数组篇(1)(std::ios::sync_with_stdio(false);std::cin.tie(nullptr);)
- 大数据基础系列 4:伪分布式 Hadoop 在 Ubuntu 上的安装流程完整步骤及易错点分析
- 计算机系统-电路设计02-与门电路
- 微信小程序项目2(哔哩哔哩)
- 3dmax 模型导出单位设置问题
- 增强 扫描王 源码_java,OpenCV简单实现类似“全能扫描王”功能
- 结婚率下滑,离婚率攀升,用BI做分析后,结论扎心了
- js实现文件下载有很多种方式,本文主要介绍7种。
- Linux 内核 vs Windows 内核
- OSM数据分析及图形化显示以及各组员之间的关系Relation的存储
- 搞个气氛 用MATLAB画一棵精致的圣诞树
- 【教学类-30-02】10以内加法题不重复(一页两份)(包括6以内、7以内、8以内、9以内、10以内加法题 只抽取25个)
- 如何在线批量转换图片格式为jpg?
- 1.Redis面试宝典
- 目标跟踪: 卫星捕获
- com.fasterxml.jackson.datatype:jackson-datatype-jsr310
- Pycharm2018破解版破解教程 Pycharm2018安装激活永久破解详细教程
- word中选中所有拼音