导图社区 HTTP
图解HTTP读书笔记,HTTP知识体系
编辑于2018-12-10 06:58:08图解HTTP
Web 及网络协议基础
网络基础TCP/IP
通常使用的网络是在TCP/IP协议族的基础上运作的,HTTP属于他内部的一个子集
把与互联网相关联的协议集合起来总称为 TCP/IP
TCP/IP 协议族按层次分别分为以下 4 层:应用层、传输层、网络层和数据链路层
发送端在层与层之间传输数据时,每经过一层时必定会被打上一个该层所属的首部信息。 反之,接收端在层 与层传输数据时,每经过一层时会把对应的首部消去
与 HTTP 关系密切的协议:IP、TCP和DNS
IP 协议的作用是把各种数据包传送给对方
IP 地址指明了节点被分配到的地址,MAC 地址是指网卡所属的固定地址。
在进行中转时,会利用下一站中转设备的 MAC 地址来搜索下一 个中转目标。这时,会采用 ARP 协议
无论哪台计算机、哪台网络设备,它们都无法全面掌握互联网中的细节
按层次分,TCP 位于传输层,提供可靠的字节流服务。
将大块数据分割成以报文段为单位的数据包进行管理
TCP 协 议为了更容易传送大数据才把数据分割
TCP 协议采用了三次握手(three-way handshaking)策略
若在握手过程中某个阶段莫名中断,TCP 协议 会再次以相同的顺序发送相同的数据包
DNS 协议提供通过域名查找 IP 地址,或逆向从 IP 地址反查域名 的服务
URL 和 URL
URL 正是使用 Web 浏览器等访问 Web 页面时需要输入的网页地址
URI 就是由某个协议方案表示的资源的定位标识符
Web 的攻击技术
针对 Web 的攻击技术
简单的 HTTP 协议本身并不存在安全性问题,因此协议本身几乎不会成为攻击的对象
在运作的 Web 应用背后却隐藏着各种容易被攻击者滥 用的安全漏洞的 Bug
在 Web 应用中,从浏览器那接收到的 HTTP 请求的全部内容,都可以在客户端自由地变更、篡改
在 HTTP 请求报文内加载攻击代码,就能发起对 Web 应用的攻击
主动攻击(active attack)是指攻击者通过直接访问 Web 应用,把攻击代码传入的攻击模式
被动攻击(passive attack)是指利用圈套策略执行攻击代码的攻击模式。
因输出值转义不完全引发的安全漏洞
跨站脚本攻击(Cross-Site Scripting,XSS)是指通过存在安全漏洞的 Web 网站注册用户的浏览器内运行非 法的 HTML 标签或 JavaScript 进行的一种攻击
远程文件包含漏洞(Remote File Inclusion)是指当部分脚本内容需要从其他文件读入时,攻击者利用指定外 部服务器的 URL充当依赖文件,让脚本读取之后,就可运行任意脚本的一种攻击
利用脚本窃取用户的 Cookie 值, 被害者在不知情的情况下, 帮助攻击者发送恶意请求。
显示伪造的文章或图片
跨站脚本攻击案例
在动态生成 HTML 处发生
对用户 Cookie 的窃取攻击
SQL 注入(SQL Injection)是指针对 Web 应用使用的数据库,通过运行非法的 SQL 而产生的攻击。
非法查看或篡改数据库内的数据
规避认证
利用虚假输入表单骗取用户个人信息。
OS 命令注入攻击(OS Command Injection)是指通过 Web 应用,执行非法的操作系统命令达到攻击的目 的
HTTP 首部注入攻击(HTTP Header Injection)是指攻击者通过在响应首部字段内插入换行,添加任意响应首部或主体的一种攻击。
设置任何 Cookie 信息
重定向至任意 URL
显示任意的主体( HTTP 响应截断攻击)
HTTP 首部注入攻击案例
邮件首部注入(Mail Header Injection)是指 Web 应用中的邮件发送功能,攻击者通过向邮件首部 To 或 Subject 内任意添加非法内容发起的攻击
目录遍历(Directory Traversal)攻击是指对本无意公开的文件目录,通过非法截断其目录路径后,达成访问 目的的一种攻击
执行和数据库服务器业务关联的程序等
因设置或设计上的缺陷引发的安全漏洞
强制浏览
强制浏览(Forced Browsing)安全漏洞是指,从安置在 Web 服务器的公开目录下的文件中,浏览那些原本 非自愿公开的文件
泄露顾客的个人信息等重要情报
泄露原本需要具有访问权限的用户才可查阅的信息内容
泄露未外连到外界的文件
不正确的错误消息处理
Web 应用不必在用户的浏览画面上展现详细的错误消息。对攻击者来说,详细的错误消息有可能给他们下一 次攻击以提示
开放重定向
开放重定向(Open Redirect)是一种对指定的任意 URL 作重定向跳转的功能。
因会话管理疏忽引发的安全漏洞
会话劫持(Session Hijack)是指攻击者通过某种手段拿到了用户的会话 ID,并非法使用此会话 ID 伪装成用 户,达到攻击的目的
对以窃取目标会话 ID 为主动攻击手段的会话劫持而言,会话固定攻击(Session Fixation)攻击会强制用户 使用攻击者指定的会话 ID,属于被动攻击。
跨站点请求伪造(Cross-Site Request Forgeries,CSRF)攻击是指攻击者通过设置好的陷阱,强制对已完 成认证的用户进行非预期的个人信息或设定信息等某些状态更新,属于被动攻击。
其他安全漏洞
密码破解攻击(Password Cracking)即算出密码,突破认证
通过网络的密码试错
穷举法
字典攻击
对已加密密码的破解(指攻击者入侵系统, 已获得加密或散列处理的密码数据的情况)
点击劫持(Clickjacking)是指利用透明的按钮或链接做成陷阱,覆盖在 Web 页面之上。然后诱使用户在不 知情的情况下,点击那个链接访问内容的一种攻击手段。这种行为又称为界面伪装(UI Redressing)。
DoS 攻击(Denial of Service attack)是一种让运行中的服务呈停止状态的攻击
后门程序(Backdoor)是指开发设置的隐藏入口,可不按正常步骤使用受限功能
简单的HTTP协议
客户端与服务端通讯
在两台计算机之间使用 HTTP 协议通信时,在一条通信线路上必定有一端是客户端,另一端则是服务器端
请求必定由客户端发出, 而服务器端回复响应
请求报文是由请求方法、请求 URI、协议版本、可选的请求首部字段和内容实体构成的
响应报文基本上由协议版本、状态码(表示请求成功或失败的数字代码)、用以解释状态码的原因短语、可 选的响应首部字段以及实体主体构成
HTTP 是一种不保存状态,即无状态(stateless)协议
协议对于发送过的请求或响应都不做持久化处理
有了 Cookie 再 用 HTTP 协议通信,就可以管理状态了
请求 URI 定位资源
当客户端请求访问资源而发送请求时,URI 需要将作为请求报文中的请求 URI 包含在内
告知服务器意图的 HTTP 方法
GET :获取资源
GET 方法用来请求访问已被 URI 识别的资源
POST:传输实体主体
虽然用 GET 方法也可以传输实体的主体,但一般不用 GET 方法进行传输,而是用 POST 方法
PUT:传输文件:传输文件
就像 FTP 协议的文件上传一样,要求在请求报文的主体中包含文件内容,然后保存 到请求 URI 指定的位置
DELETE:删除文件
DELETE 方法用来删除文件,是与 PUT 相反的方法。
OPTIONS:询问支持的方法
OPTIONS 方法用来查询针对请求 URI 指定的资源支持的方法
TRACE:追踪路径
TRACE 方法是让 Web 服务器端将之前的请求通信环回给客户端的方法
CONNECT:要求用隧道协议连接代理
CONNECT 方法要求在与代理服务器通信时建立隧道,实现用隧道协议进行 TCP 通信
主要使用 SSL,安全套接层)和 TLS,传输层安全)协议把通信内容加 密后经网络隧道传输
持久连接节省通信量
HTTP 协议的初始版本中,每进行一次 HTTP 通信就要断开一次 TCP 连接
持久连接的特点是,只要任意 一端没有明确提出断开连接,则保持 TCP 连接状态
持久连接使得多数请求以管线化(pipelining)方式发送成为可能
使用 Cookie 的状态管理
HTTP 是无状态协议,它不对之前发生过的请求和响应的状态进行管理
Cookie 技术通过在请 求和响应报文中写入 Cookie 信息来控制客户端的状态
Cookie 会根据从服务器端发送的响应报文内的一个叫做 Set-Cookie 的首部字段信息,通知客户端保存 Cookie
当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入 Cookie 值后发送出去
HTTP 报文内的 HTTP信息
HTTP 报文
用于 HTTP 协议交互的信息被称为 HTTP 报文
HTTP 报文大致可分为报文首部和报文主体两块
报文结构
请求行
状态行
首部字段
其他
编码提升传输速率
通过在传 输时编码,能有效地处理大量的访问请求。但是,编码的操作需要计算机来完成,因此会消耗更多的 CPU 等 资源
报文
是 HTTP 通信中的基本单位,由 8 位组字节流(octet sequence,其中 octet 为 8 个比特)组成,通过 HTTP 通信传输
实体
作为请求或响应的有效载荷数据(补充项)被传输,其内容由实体首部和实体主体组成
向待发送邮件内增加附件时,为了使邮件容量变小,我们会先用 ZIP 压缩文件之后再添加附件发送
常用的内容编码有以下几种
gzip( GNU zip)
compress( UNIX 系统的标准压缩)
deflate ( zlib)
identity(不进行编码)
在 HTTP 通信过程中,请求的编码实体资源尚未全部传输完成之前,浏览器无法显示请求页面。
发送多种数据的多部分对象集合
在 MIME 扩展中会使用一种称为多部分对象集合(Multipart)的方法,来容纳多份不同类型的数据
多部分对象集合包含的对象
multipart/form-data
multipart/byteranges
multipart/form-data
multipart/byteranges
在 HTTP 报文中使用多部分对象集合时,需要在首部字段里加上 Content-type
获取部分内容的范围请求
执行范围请求时,会用到首部字段 Range 来指定资源的 byte 范围。
内容协商返回最合适的内容
当浏览器的默认语言为英语或中文,访问相同 URI 的 Web 页面时,则会显示对应的英语版或中文版的 Web 页面。这样的机制称为内容协商(
内容协商机制是指客户端和服务器端就响应的资源内容进行交涉,然后提供给客户端最为适合的资源
由服务器端进行内容协商。以请求的首部字段为参考,在服务器端自动处理
由客户端进行内容协商的方式。用户从浏览器显示的可选项列表中手动选择
是服务器驱动和客户端驱动的结合体,是由服务器端和客户端各自进行内容协商的一种方法
Accept Accept-Charset Accept-Encoding Accept-Language Content-Language
返回结果的 HTTP 状态码
状态码的职责
当客户端向服务器端发送请求时,描述返回的请求结果
状态码的大致分类
1XX
信息性状态码
接收的请求正在处理
2XX
成功状态码
请求正常处理完毕
3XX
重定向状态码
需要进行附加操作以完成请求
4XX
客户端错误状态码
服务器无法处理请求
5XX
服务器错误状态码
服务器处理请求出错
2XX 成功
200 OK
表示从客户端发来的请求在服务器端被正常处理了
204 No Content
该状态码代表服务器接收的请求已成功处理,但在返回的响应报文中不含实体的主体部分
206 Partial Content
该状态码表示客户端进行了范围请求,而服务器成功执行了这部分的 GET 请求
3XX 重定向
301 Moved Permanently
永久性重定向。该状态码表示请求的资源已被分配了新的 URI,以后应使用资源现在所指的 URI。
302 Found
临时性重定向。该状态码表示请求的资源已被分配了新的 URI,希望用户(本次)能使用新的 URI 访问
303 See Other
该状态码表示由于请求对应的资源存在着另一个 URI,应使用 GET 方法定向获取请求的资源
303 状态码和 302 Found 状态码有着相同的功能,但 303 状态码明确表示客户端应当采用 GET 方法获取资 源
304 Not Modified
该状态码表示客户端发送附带条件的请求 2 时,服务器端允许请求访问资源,但未满足条件的情况
307 Temporary Redirect
临时重定向。该状态码与 302 Found 有着相同的含义。尽管 302 标准禁止 POST 变换成 GET
4XX 客户端错误
400 Bad Request
该状态码表示请求报文中存在语法错误
401 Unauthorized
该状态码表示发送的请求需要有通过 HTTP 认证(BASIC 认证、DIGEST 认证)的认证信息
403 Forbidden
该状态码表明对请求资源的访问被服务器拒绝了
404 Not Found
该状态码表明服务器上无法找到请求的资源
5XX 服务器错误
500 Internal Server Error
该状态码表明服务器端在执行请求时发生了错误。也有可能是 Web 应用存在的 bug 或某些临时的故障
503 Service Unavailable
该状态码表明服务器暂时处于超负载或正在进行停机维护,现在无法处理请求
与 HTTP 协作的 Web 服务器
用单台虚拟主机实现多个域名
HTTP/1.1 规范允许一台 HTTP 服务器搭建多个 Web 站点
通信数据转发程序 :代理、网关、隧道
代理
代理服务器的基本行为就是接收客户端发送的请求后转发给其他服务器
缓存代理
透明代理
网关
利用网关可以由 HTTP 请求转化为其他协议通信
隧道
隧道的目的是确保 客户端能与服务器进行安全的通信
保存资源的缓存
代理服务器
缓存是指代理服务器或客户端本地磁盘内保存的资源副本
缓存的有效期限
即使存在缓存,也会因为客户端的要求、缓存的有效期等因素,向源服务器确认资源的有效性
客户端的缓存
浏览器缓存如果有效,就不必再向服务器请求相同的资源了,可以直接从本地磁盘内读取
Web 及网络协议基础
网络基础TCP/IP
通常使用的网络是在TCP/IP协议族的基础上运作的,HTTP属于他内部的一个子集
把与互联网相关联的协议集合起来总称为 TCP/IP
TCP/IP 协议族按层次分别分为以下 4 层:应用层、传输层、网络层和数据链路层
发送端在层与层之间传输数据时,每经过一层时必定会被打上一个该层所属的首部信息。 反之,接收端在层 与层传输数据时,每经过一层时会把对应的首部消去
与 HTTP 关系密切的协议:IP、TCP和DNS
IP 协议的作用是把各种数据包传送给对方
IP 地址指明了节点被分配到的地址,MAC 地址是指网卡所属的固定地址。
在进行中转时,会利用下一站中转设备的 MAC 地址来搜索下一 个中转目标。这时,会采用 ARP 协议
无论哪台计算机、哪台网络设备,它们都无法全面掌握互联网中的细节
按层次分,TCP 位于传输层,提供可靠的字节流服务。
将大块数据分割成以报文段为单位的数据包进行管理
TCP 协 议为了更容易传送大数据才把数据分割
TCP 协议采用了三次握手(three-way handshaking)策略
若在握手过程中某个阶段莫名中断,TCP 协议 会再次以相同的顺序发送相同的数据包
DNS 协议提供通过域名查找 IP 地址,或逆向从 IP 地址反查域名 的服务
URL 和 URL
URL 正是使用 Web 浏览器等访问 Web 页面时需要输入的网页地址
URI 就是由某个协议方案表示的资源的定位标识符
确保 Web 安全的 HTTPS
HTTP 的缺点
通信使用明文(不加密), 内容可能会被窃听
不验证通信方的身份, 因此有可能遭遇伪装
无法证明报文的完整性, 所以有可能已遭篡改
HTTP+ 加密 + 认证 + 完整性保护 =HTTPS
我们把添加了加密及认证机制 的 HTTP 称为 HTTPS
只是 HTTP 通信接口部分用 SSL(Secure Socket Layer)和TLS(Transport Layer Security)协议代替而已
SSL 是独立于 HTTP 的协议,所以不光是 HTTP 协议,其他运行在应用层的 SMTP 和 Telnet 等协议均可配 合 SSL 协议使用
SSL 采用一种叫做公开密钥加密(Public-key cryptography)的加密处理方式
加密和解密都会用到密钥。没有密钥就无法对密码解密,反过来说,任何人只要持有密钥就能解密了
加密和解密同用一个密钥的方式称为共享密钥加密(Common key crypto system),也被叫做对称密钥 加密
公开密钥加密使用一对非对称的密钥。一把叫做私有密钥(private key),另一把叫做公开密钥(public key)
HTTPS 采用混合加密机制
数字证书认证机构(CA,Certificate Authority)和其相关机关颁发的公开密 钥证书
确认访问用户身份的认证
何为认证
密码:只有本人才会知道的字符串信息。
动态令牌:仅限本人持有的设备内显示的一次性密码
数字证书:仅限本人(终端)持有的信息
生物认证:指纹和虹膜等本人的生理信息。
IC 卡等:仅限本人持有的信息
BASIC 认证(基本认证)
DIGEST 认证(摘要认证)
SSL 客户端认证
FormBase 认证(基于表单认证)
BASIC 认证
BASIC 认证(基本认证)是从 HTTP/1.0 就定义的认证方式。
BASIC 认证使用上不够便捷灵活,且达不到多数 Web 网站期望的安全性等级,因此它并不常用。
步骤 1: 当请求的资源需要 BASIC 认证时,服务器会随状态码 401 Authorization Required,返回带 WWW-Authenticate 首部字段的响应
步骤 2: 接收到状态码 401 的客户端为了通过 BASIC 认证,需要将用户 ID 及密码发送给服务器
步骤3:接收到包含首部字段 Authorization 请求的服务器,会对认证信息的正确性进行验证
DIGEST 认证
DIGEST 认证同样使用质询 / 响应的 方式(challenge/response),但不会像 BASIC 认证那样直接发送明文密码。
步骤 1: 请求需认证的资源时,服务器会随着状态码 401 Authorization Required,返 回带 WWW-Authenticate 首部字段的响应
步骤 2: 接收到 401 状态码的客户端,返回的响应中包含 DIGEST 认证必须的首部字段 Authorization 信 息。
步骤 3: 接收到包含首部字段 Authorization 请求的服务器,会确认认证信息的正确性。
SSL 客户端认证
SSL 客户端认证是借由 HTTPS 的客户端证书完成认证的方式。
步骤 1: 接收到需要认证资源的请求,服务器会发送 Certificate Request 报文,要求客户端提供客户端证 书。
步骤 2: 用户选择将发送的客户端证书后,客户端会把客户端证书信息以 Client Certificate 报文方式发送给 服务器。
步骤 3: 服务器验证客户端证书验证通过后方可领取证书内客户端的公开密钥,然后开始 HTTPS 加密通 信。
基于表单认证
认证多半为基于表单认证
基于表单认证的标准规范尚未有定论,一般会使用 Cookie 来管理 Session(会话)
步骤 1: 客户端把用户 ID 和密码等登录信息放入报文的实体部分,通常是以 POST 方法把请求发送给服务 器。
步骤 2: 服务器会发放用以识别用户的 Session ID。会在首部字段 Set-Cookie 内写入 Session ID
步骤 3: 客户端接收到从服务器端发来的 Session ID 后,会将其作为 Cookie 保存在本地
基于 HTTP 的功能追加协议
消除HTTP 瓶颈的 SPDY
其开发目标旨在解决 HTTP 的性能瓶颈,缩短 Web 页面的加载时间(50%)
SPDY 的确是一种可有效消除 HTTP 瓶颈的技术,但很多 Web 网站存在的问题并非仅仅是由 HTTP 瓶颈所 导致
请求只能从客户端开始。 客户端不可以接收除响应以外的指令。
请求 / 响应首部未经压缩就发送。 首部信息越多延迟越大。
发送冗长的首部。 每次互相发送相同的首部造成的浪费较多。
可任意选择数据压缩格式。 非强制压缩发送。
一条连接上只可发送一个请求。
多路复用流
通过单一的 TCP 连接,可以无限制处理多个 HTTP 请求
赋予请求优先级
SPDY 不仅可以无限制地并发处理请求,还可以给请求逐个分配优先级顺序
压缩 HTTP 首部
压缩 HTTP 请求和响应的首部
推送功能
支持服务器主动向客户端推送数据的功能
服务器提示功能
服务器可以主动提示客户端请求所需的资源
SPDY 没有完全改写 HTTP 协议,而是在 TCP/IP 的应用层与运输层之间通过新加会话层的形式运作
使用浏览器进行全双工通信的WebSocket
一旦 Web 服务器与客户端之间建立起 WebSocket 协议的通信连接,之后所有的通信都依靠这个专用协议进 行。
连接的发起方仍是客户端,而一旦确立 WebSocket 通信连接,不 论服务器还是客户端,任意一方都可直接向对方发送报文
支持由服务器向客户端推送数据的推送功能。
和 HTTP 相比,不但每次连接时的总开销减少, 而且由于 WebSocket 的首部信息很小,通信量也相应减少了
期盼已久的HTTP/2.0
HTTP/2.0 的目标是改善用户在使用 Web 时的速度体验。
Web 服务器管理文件的 WebDAV
一 个可对 Web 服务器上的内容直接进行文件复制、编辑等操作的分布式文件系统
构建 Web 内容的技术
HTML
HTML5 标准不仅解决了浏览器之间的兼容性问题,并且可把文本作为数据对待,更容易复用,动画等效果也 变得更生动。
CSS(Cascading Style Sheets,层叠样式表)可以指定如何展现 HTML 内的各种元素,属于样式表标准之一
所谓动态 HTML(Dynamic HTML),是指使用客户端脚本语言将静态的 HTML 内容变成动态的技术的总 称。
DOM 是用以操作 HTML 文档和 XML 文档的 API(
Web 应用
Web 应用是指通过 Web 功能提供的应用程序
CGI(Common Gateway Interface,通用网关接口)是指 Web 服务器在接收到客户端发送过来的请求后转发 给程序的一组机制
随着 CGI 的普及,每次请求都要启动新 CGI 程序的 CGI 运行机制逐渐变成了性能瓶颈, 所以之后 Servlet 和 mod_perl 等可直接在 Web 服务器上运行的程序才得以开发、普及
数据发布的格式及语言
XML(eXtensible Markup Language,可扩展标记语言)是一种可按应用目标进行扩展的通用标记语言
RSS(简易信息聚合,也叫聚合内容)和 Atom 都是发布新闻或博客日志等更新信息文档的格式的总称
JSON(JavaScript Object Notation)是一种以 JavaScript(ECMAScript)的对象表示法为基础的轻量级数据 标记语言
HTTP 头部
HTTP 报文的结构
在请求中,HTTP 报文由方法、URI、HTTP 版本、HTTP 首部字段等部分构成。
在响应中,HTTP 报文由 HTTP 版本、状态码(数字和原因短语)、HTTP 首部字段 3 部分构成
HTTP 首部字段
HTTP 首部字段是由首部字段名和字段值构成的,中间用冒号“:” 分隔。
字段值对应单个 HTTP 首部字段可以有多个值
4 种 HTTP 首部字段类型
通用首部字段( General Header Fields)
请求首部字段( Request Header Fields)
响应首部字段( Response Header Fields)
实体首部字段( Entity Header Fields)
HTTP/1.1 首部字段一览
Cache-Control
控制缓存行为
还有 Cookie、 Set-Cookie 和 Content-Disposition 等在其他 RFC 中定义的首部字段,它们的使用频率也很高
Date
创建报文的日期时间
Pragma
报文指令
Trailer
报文末端的首部一览
Transfer-Encoding
指定报文主体的传输编码方式
Upgrade
升级为其他协议
Via
代理服务器的相关信息
Warning
错误通知
Accept
用户代理可处理的媒体类型
Accept-Charset
优先的字符集
Accept-Encoding
优先的内容编码
Accept-Language
优先的语言(自然语言)
Authorization
Web认证信息
Expect
期待服务器的特定行为
From
用户的电子邮箱地址
Host
请求资源所在服务器
If-Match
比较实体标记(ETag)
If-Modified-Since
比较资源的更新时间
If-None-Match
比较实体标记(与 If-Match 相反)
If-Range
资源未更新时发送实体 Byte 的范围请求
If-Unmodified-Since
比较资源的更新时间(与If-Modified-Since相反)
Max-Forwards
最大传输逐跳数
Proxy-Authorization
代理服务器要求客户端的认证信息
Connection
逐跳首部、连接的管理
Referer
对请求中 URI 的原始获取方
TE
传输编码的优先级
User-Agent
HTTP 客户端程序的信息
Accept-Ranges
是否接受字节范围请求
Age
推算资源创建经过时间
ETag
资源的匹配信息
Location
令客户端重定向至指定URI
Proxy-Authenticate
代理服务器对客户端的认证信息
Retry-After
对再次发起请求的时机要求
Server
HTTP服务器的安装信息
Vary
代理服务器缓存的管理信息
WWW-Authenticate
服务器对客户端的认证信息
Allow
资源可支持的HTTP方法
Content-Encoding
实体主体适用的编码方式
Content-Language
实体主体的自然语言
Content-Length
实体主体的大小(单位:字节)
Content-Location
替代对应资源的URI
Content-MD5
实体主体的报文摘要
Content-Range
实体主体的位置范围
Content-Type
实体主体的媒体类型
Expires
实体主体过期的日期时间
Last-Modified
资源的最后修改日期时间
Range
实体的字节范围请求
End-to-end 首部和 Hop-by-hop 首部
端到端首部( End-to-end Header)
逐跳首部( Hop-by-hop Header)