实体和编码

一、实体

(1) 实体:实体包含实体首部和实体主体
(2) 实体首部:实体首部描述了 HTTP 报文的内容,参考实体的首部字段
(3) 实体主体:实体主体就是 HTTP 报文,即原始的数据

二、Content-Length

(1) Content-Length 首部指出报文中实体主体的字节大小,这个大小是包含了所有内容编码的,比如对主体压缩,则 Content-Length 表示的是压缩后的大小而不是原始主体的大小
(2) 检测截尾:使用 Content-Length 首部是为了能够检测出服务器崩溃而导致的报文截尾,HTTP 的早期版本采用关闭连接的方法来划定报文的结束,但是,没有 Content-Length 的话,客户端无法区分到底是报文结束时正常的连接关闭,还是报文传输中由于服务器崩溃而导致的连接关闭,客户端需要通过 Content-Length 来检测报文截尾。报文截尾的问题对缓存代理服务器来说尤其严重,如果缓存服务器收到被截尾的报文却没有识别出截尾的话,它可能会存储不完整的内容并多次使用它来提供服务。
(3) Content-Length 与 持久连接:客户端通过 Content-Length 首部就可以知道报文在何处结束,下一条报文从何处开始,因为连接是持久的,客户端无法依赖连接关闭来判别报文的结束
(4) 内容编码:HTTP 允许对实体主体的内容进行编码,比如压缩,而 Content-Length 记录的是编码后的主体的字节长度而不是原始主体的长度

三、Content-MD5

(1) Content-MD5 作用:Content-MD5 是对主体的 MD5 校验和,服务器使用 MD5 首部发送对实体主体运行 MD5 算法的结果,客户端必须先进行传输编码的解码,然后计算所得到的的未进行传输编码的实体主体的 MD5
(2) 为什么要使用 Content-MD5 :防止 HTTP 报文在传输过程中被修改,客户端通过检查这个校验和(MD5)来检查是否被修改

四、Content-Type

(1) Content-Type 首部字段说明了实体主体的 MIME 类型,以便客户端应用程序使用 MIME 类型来解释和处理其内容,常见的媒体类型
(
2) 文本的字符编码:Content-Type 可以用字符集来说明把实体中的比特转换为文本文件中的字符的方法,如 Content-Type: text/html;charset=UTF-8

五、内容编码

(1) 什么是内容编码:HTTP 允许在发送报文之前对内容进行编码,比如把 HTML 文档进行压缩之后再传输
(2) 内容编码的过程:① 服务器生成响应报文  ② 服务器对响应报文进行编码并发送给客户端  ③ 客户端接收到编码后的报文,进行解码,获得原始报文
(3) 内容编码的类型:① gzip 压缩  ② compress 压缩  ③ zlib 压缩  
(4) Accept-Encoding :该首部字段告诉服务器客户端所支持的编码类型

六、传输编码

(1) 使用传输编码是为了改变报文中的数据在网络上传输的方式,传输编码作用在整个报文上,报文自身的结构会发生改变
(2) 你可以用传输编码来发送数据,并用特别的结束脚注表明数据结束;你可以用传输编码把报文内容扰乱,然后在网络上进行传输
(3) Transfer-Encoding :该首部告知客户端为了可靠地传输报文,已经对其进行了何种编码
(4) TE :用在请求首部中,告知服务器可以使用哪些传输编码扩展

七、分块编码

(1) 分块编码把报文分割为若干个大小已知的块,块之间是紧挨着发送的,这样就不需要在发送之前知道整个报文的大小了,分块编码也是一种传输编码

时间: 2024-10-31 18:24:26

实体和编码的相关文章

前端学HTTP之实体和编码

前面的话 每天都有各种媒体对象经由HTTP传送,如图像.文本.影片以及软件程序等.HTTP要确保它的报文被正确传送,识别.提取以及适当处理.为了实现这些目标,HTTP使用了完善的标签来描述承载内容的实体.本文将详细介绍HTTP的实体和编码 实体介绍 如果把HTTP报文想象成因特网货运系统中的箱子,那么HTTP实体就是报文中实际的货物.下图展示了一个简单的实体,装在HTTP响应报文中 实体首部指出这是一个纯文本文档(Content-Type : text/plain),它只有18个字节长(Cont

HTTP之实体和编码

1. Content-Length: 实体的大小 Content-Length 首部指示出报文中实体主体的字节大小.这个大小是包含了所有内容编码的,比如,对文本文件进行了 gzip 压缩的话,Content-Length 首部就是压缩后的大小,而不是原始大小. 除非了使用了分块编码,否则 Content-Length 首部就是带有实体主体的报文必须使用的.使用 Content-Length 首部是为了能够检测出服务器崩溃而导致的报文截尾,并对共享持久连接的多个报文进行正确分段. 1.1 检测截尾

十五章、实体与编码

1 报文与实体 如果将HTTP对内容的传输比喻成实际生活中一些货物的运输的化.那HTTP报文就相当于是用于运输货物的“箱子”,而实体内容则是我们真正需要运输的“货物”.所以实体也就是被封装在了报文当中. 现实货物运输中,一般箱子上也会有一些描述信息,用于对运输的货物进行描述说明.HTTP报文中也是一样,也会有相应的实体首部,对实体内容进行描述说明,以便我们的接收方能正确处理实体内容.在HTTP/1.1中常用的实体首部如下所示: Content-Type:实体内容的MIME类型 Content-L

《HTTP权威指南》读书笔记(六)-实体和编码

一.实体首部 HTTP实体首部描述了HTTP报名的内容.HTTP/1.1版定义了以下10个基本字体首部字段. Content-Type:实体中所承载对象的类型 Content-Length:所传送实体的长度或大小 Content-Language:与所传送对象最相配的人类语言 Content-Encoding:对象数据所做的任意变换(例如压缩) Content-Location:一个备用位置,请求时可通过它获得对象 Content-Range:如果这是部分实体,这个首部说明它是整体的哪个部分 C

XSS与字符编码的那些事儿

目录 0x00:基本介绍 0x01:html实体编码 0x02:新增的实体编码 实体编码变异以及浏览器的某些工作原理! 0x03:javascript编码 0x04:base64编码 0x05:闲扯 0x00基本介绍 提起XSS 想到的就是插入字符字符编码与各种解析了! 这也就是各种xss编码插件跟工具出世的原因!之前不懂浏览器是如何对我们编码过的代码进行解析的时候就是一顿乱插! 各种编码 各种插 没把编码还原就算了 还原了就算运气好!后来到PKAV经过二哥和短短的调教后才算是弄清楚了一点编码与

HTML特殊字符编码对照表

直接输入下面字符,可显示相应图案 HTML特殊字符编码对照表 特殊符号 命名实体 十进制编码 特殊符号 命名实体 十进制编码     !   ! " " " #   # $   $ %   % & & & '   ' (   ( )   ) *   * +   + ,   , -   - .   . /   / 0   0 1   1 2   2 3   3 4   4 5   5 6   6 7   7 8   8 9   9 :   : ;   ;

html 实体和htmlspecialchars()

HTML 中的预留字符必须被替换为字符实体. HTML 实体 在 HTML 中,某些字符是预留的. 在 HTML 中不能使用小于号(<)和大于号(>),这是因为浏览器会误认为它们是标签. 如果希望正确地显示预留字符,我们必须在 HTML 源代码中使用字符实体(character entities). 字符实体类似这样: &entity_name; 或者 &#entity_number; 如需显示小于号,我们必须这样写:< 或 < 提示:使用实体名而不是数字的好处是,

HTTP - 内容编码

HTTP 应用程序有时在发送之前需要对内容进行编码.例如,在把很大的 HTML 文档发送给通过慢速连接上来的客户端之前,服务器可能就会对它进行压缩,这样有助于减少传输实体的时间. 内容编码过程 内容编码的过程如下所述. 网站服务器生成原始响应报文,其中有原始的 Content-Type 和 Content-Length 首部. 内容编码服务器(也可能就是原始的服务器或下行的代理)创建编码后的报文,编码后的报文有同样的 Content-Type 但 Content-Length 可能不同(比如主体

xss编码小结

一.JS编码与HTML编码区分: HTML实体可以使用十进制与十六进制编码:javascript可以使用Unicode与八进制与十六进制进行编码. 二.编码原理区分: 三.编码与非编码 对于JS编码: 1.<script>eval("\u0061\u006c\u0065\u0072\u0074\u0028\u002f\u0078\u0073\u0073\u002f\u0029");</script>(JS Unicode编码) 2. <script>