《HTTP 权威指南》笔记:第十五章 实体与编码

如果把 「HTTP 报文」想象为因特网货运系统的「箱子」,那么「HTTP 实体」就是报文中的实际的「货物」.
其中,实体又包含了「实体首部」 和 「实体主体」,实体首部用于描述各种参数,实体主体就是原始货物.
常见的实体首部
实体的大小: Content-Length
定义:
报文的字节的数量
功能:
HTTP 的早期版本用 Content-Length.来判断是否关闭连接,进而判断报文结束.
注意:
- 持久连接必须有 Content-Length ,因为连接是持久的,因此客户端无法依赖连接关闭来判别报文的结束.
- 经过内容编码之后,说明的是编码之后的报文主体的长度.
实体摘要: Content-MD5
定义:对报文主体进行 MD5 算法得到的结果
功能:防止报文被篡改
媒体类型: Content-Type
定义:主体的 MIME 类型
注意:经过内容编码之后, Content-type 首部说明的仍是编码之前实体主体的类型.
一种Content-type:multipart
定义:报文中存在多个报文,合成一个复杂的报文发送
功能:支持多部分主体,常常用于填写表格
内容编码: Content-Encoding
定义:为了达到减少传输时间的目的,对主体内容进行压缩.
类型:
内容编码的类型是 Content-Encoding 的值,有下面几种:
- gzip
- compress
- deflate
- identity(没有编码,当没有 Content-Encoding 时的值)
传输编码: Transfer-Encoding
定义
与内容编码仅仅把报文主体内容编码不同, 传输编码将整个报文进行编码.
分块编码
定义:将报文分割为大小已知的块,块与块紧挨着发送.
格式:以长度值为 0 的块代表主体结束.
特点:不需要知道 Content-length(在主体是动态创建的情况下很实用)
实例操控 instance manipulations
定义:在不同的时间下,一个对象可能有不同的版本.要求客户端能够标示它所拥有的资源的副本,并且在一定的条件下请求实例.
主要有两种办法进行实体操控:
- 范围请求
- 差异编码
范围请求:Accept-Ranges
定义:
允许客户端在副本不再有效的情况下,不请求完整副本,只请求文档的一个范围
应用:
下载中断的文件在重新下载时不需要重头开始下载.
差异编码:A-IM
定义:
当页面的内容发生变化的时候,即使改动的内容很少,也要重新请求.
差异编码指的是客户端愿意服务器只发送改变的部分,以更快地得到更新的页面.
A-IM 这个 header
A-IM: 是 Accept Instance Manipulation 的缩写,其功能相当于:
客户端说:“哦,对了,我能接受某些形式的实例操控,如果你会其中的一种的话,就不用发完整的文档给我了.”
缺陷
如果一个网页更新比较频繁,服务器为了能够更快地进行差异计算,于是需要把各个版本的文档储存在服务器上,导致硬盘的空间减少.
转载于:https://www.cnblogs.com/FBsharl/p/10662670.html
《HTTP 权威指南》笔记:第十五章 实体与编码相关推荐
- R语言实战笔记--第十五章 处理缺失数据
R语言实战笔记–第十五章 处理缺失数据 标签(空格分隔): R语言 处理缺失数据 VIM mice 缺失值(NA),是导致我们计算错误的一大来源,处理缺失数据在实际的应用中有着较为重要的作用. 基本方 ...
- Linux(b站视频兄弟连)自学笔记第十五章——启动管理
Linux(b站视频兄弟连)自学笔记第十五章--启动管理 CentOS 6.x启动管理 系统运行级别 系统启动过程 启动引导程序grub Grub配置文件 Grub加密与字符界面分辨率调整 系统修复模 ...
- 《Windows核心编程》读书笔记二十五章 未处理异常,向量化异常处理与C++异常
第二十五章 未处理异常,向量化异常处理与C++异常 本章内容 25.1 UnhandledExceptionFilter函数详解 25.2 即时调试 25.3 电子表格示例程序 25.4 向量化异常 ...
- 机器学习入门-西瓜书总结笔记第十五章
西瓜书第十五章-规则学习 一.基本概念 二.序贯覆盖 三.剪枝优化 四.一阶规则学习 五.归纳逻辑程序设计 1.最小一般泛化 2.逆归结 一.基本概念 机器学习中的 "规则"(ru ...
- Objective-C学习笔记第十五章文件加载与保存
第十五章文件加载与保存 Cocoa提供了Core Data,他能在后台处理所有文件内容 Cocoa提供了两个通用的文件处理类:属性列表和对象编码 一.属性列表类 在Cocoa中,有一类名为属性列表的对 ...
- 【机器学习-周志华】学习笔记-第十五章
记录第一遍没看懂的 记录觉得有用的 其他章节: 第一章 第三章 第五章 第六章 第七章 第八章 ...
- Programming In Scala笔记-第十五章、Case Classes和模式匹配
本章主要分析case classes和模式匹配(pattern matching). 一.简单例子 接下来首先以一个包含case classes和模式匹配的例子来展开本章内容. 下面的例子中将模拟实现 ...
- Hadoop权威指南笔记1——第1章:初始Hadoop
第1章:初识Hadoop 1.1 数据!数据! 我们生活在一个大数据的时代.各处都是数据 1.2 数据的存储与分析 硬盘容量在扩大,但是读写数据没有改变.就会导致读取大数据,数据变慢 那么 ...
- APUE读书笔记-第十五章-进程间通信
管道 创建管道(pipe函数) #include <unistd.h> int pipe(int fd[2); fd[0]为读打开,fd[1]为写打开 局限性 (1)管道是半双工的,数据只 ...
最新文章
- Caffe中计算图像均值的实现(cifar10)
- 几种常见自动化测试框架
- 全面了解Nginx主要应用场景【转】
- UVa 11466 - Largest Prime Divisor
- mysql的骚操作:自增长的字段同时插入到另一个字段
- 【牛客 - 302哈尔滨理工大学软件与微电子学院第八届程序设计竞赛同步赛(低年级)】小乐乐切割方块(思维,水题)
- mysql 查看集群状态_MySQL数据库集群正确配置步骤
- SpringBoot (6)---RestTemplate方法详解(2)
- MySQL数据库(二) 一一 MySQL管理
- 北京理工大学语音识别技术.ppt
- pytorch 中 torch.optim.Adam 方法的使用和参数的解释
- 普通开发人员与软件工程师的区别
- 一定能成功的Android NDK环境配置教程
- adc分辨率和精度的区别_STM32学习笔记—ADC采集数据常见问题
- python3编码解码
- U-Mail邮件网关智能DNS技术,解决海外邮件接收问题
- rsync+crontab实现定时备份
- 怀孕计算机在线,【孕期天数计算器在线计算_孕期天数计算器在线计算专题】- 天鹅到家...
- 基于思维导图的研究生创新能力培养
- 计算机cs怎么使用技巧,CS里的fps设置方法(显卡篇)
热门文章
- 装修月记第一弹,硬装篇
- android监控指纹信息变化,android监听指纹变化(解决反射思路在android10不生效的问题)...
- python可以自动写文章吗_让python来告诉你神奇的操作,如何实现文章自动化
- 区别和联系_动机与主题的区别与联系
- 华为摄像机搜索软件_别人的终点华为的起点!用普惠AI守护城市安全
- linux下I2C驱动发送IO时序,Linux I2C 驱动阅读的碰到的一些网上没有提到的东西
- keras 多层lstm_tensorflow-如何在keras中堆叠多个lstm?
- Postgresql多线程hashjoin(inner join)
- css链接样式_CSS中的样式链接
- Java LocalDate类| parse()方法与示例