文档章节

HTTP读书笔记(六)

年少爱追梦
 年少爱追梦
发布于 2016/02/24 17:07
字数 858
阅读 34
收藏 0

 第九章 HTTP编码

1.HTTP要确保它所承载的货物,可以被正确识别提取,必须要满足:通过Content-Type首部说明媒体格式,Content-Language首部说明语言。通过Content-Length首部和Content-Encoding首部可以被正确的解包。通过实体验证码和缓存过期控制保证是最新的。通过范围请求。基于Accept系列的内容协商首部,达到用户的需求。通过范围请求,差异编码以及其他数据压缩方法,使得在网络上快速有效的传输。通过传输编码首部和Content-MD5校验和首部达到完整性,避免被篡改。

2.HTTP报文分析大法(抓了包看不懂的注意了)

首部的结尾都是0aOx表示是16进制,开始我也忘记了所以看不懂),没两个编码表示一个字节(也是字符)。这个是抓的文本信息。

Gif6个字节的版本标志开头,2个字节的宽度和两个字节的宽度。这里之所以是0227不是2702的原因应该是高低位的问题。高位在右低位在左所以颠倒了顺序。(很多时候容易忽略这个问题)

3.Content-Length 实体的大小问题:这里的长度是有问题的,如果gzip压缩的话这里的长度就是指压缩过后的长度,并不是原始长度。除非使用分块编码,否则带有实体的首部中必须要要有Content-Length

4.Content-Length与持久连接:Content-Length首部对于持久化连接是必不可少的,如果响应通过持久化连接传送,就可能有另外一条HTTP响应紧随其后,客户端通过Content-Length就可以知道报文在何处结束,下一条报文从何处开始,这个的结束和开始是针对的tcp/ip协议里面的数据包(个人理解)

5.HTTP的编解码:对与HTTP而言没有任何一个首部可以用来说明原始的位编码的主体长度,这就让客户端难以验证编解码过程的完整性。

6.确定实体长度的规则:如果含有描述传输编码首部Transfer-Encoding(优先级大于Content-Length)就不再采用HTTP的恒等编码。如果采用了multipart/byteranges(多部分多自己)媒体类型如果没有Content-Length首部,则每一个报文的部分都要说明自己的大小,这种是自定义类型,除非知道否者不能使用。

7.实体摘要常用Content-MD5,用户检验完整性和,快速定位,减少重复内容的存储。

8.HTTP内容编码过程:先生成原始报文,有Content-typeContent-Length,然后对内容报文进行编码,前两个首部都有可能该变,Content-Encoding首部,这样客户端就可以解码了。

9.内容编码类型:gzip,compressdeflate,identity。前三种都是无损压缩,最后一种指的是没有压缩。

10.Accept-Encoding就是客户端支持的编解码类型,如果没有带AE首部就是说明支持一切的编解码方式。

11.传输编码和分块编码,使用传输编码是为了改变报文中的数据在网络中的传输方式。


© 著作权归作者所有

上一篇: 写在前面
下一篇: HTTP读书笔记(五)
年少爱追梦
粉丝 35
博文 193
码字总数 120092
作品 0
杭州
程序员
私信 提问
UNIX网络编程卷2进程间通信读书笔记汇总

UNIX网络编程卷2进程间通信读书笔记(一)—概述 http://blog.chinaunix.net/u/22935/article_52711_2.html UNIX网络编程卷2进程间通信读书笔记(二)—管道 (1) http://blog.chinaunix.ne...

长平狐
2012/09/03
244
0
《Linux内核设计与实现》读书笔记 - 目录 (完结)

《Linux内核设计与实现》读书笔记 - 目录 (完结) 读完这本书回过头才发现, 第一篇笔记居然是 2012年8月发的, 将近一年半的时间才看完这本书(汗!!!). 为了方便以后查看, 做个《Linux内核设计...

你的猫大哥
2018/01/14
0
0
百家笔记网博客的运营和6个月增长速度还远远不够[图]

百家笔记网是一个关于读书笔记和名著读后感写作的博客,博客的写作需要长期的坚持,是一个需要强大执行力才可以做到的事情,非常艰难,因为我们发现,目前在中国的互联网行业, 名气最大的独...

原创小博客
2018/06/26
26
0
我的RabbitMQ的学习成果

背景 在研发分布式事务的最终一致性事务模式时,使用了RabbitMQ。 在这之前也接触过RabbitMQ,但没有特别深入的去了解它的特性与原理。这次决定系统的学习一次,所以业余时间阅读大神们的书籍...

XuePeng77
04/15
258
0
我的 2017 年度盘点

一、Core Topics Learning based on full English. Operating System Kernel & Dynamic tracking & Go Programming Language. Lincoln Foundation & Absolutism Research. 二、年度成果 2.1 ......

RiboseYim
2017/12/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

关于AsyncTask的onPostExcute方法是否会在Activity重建过程中调用的问题

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/XG1057415595/article/details/86774575 假设下面一种情况...

shzwork
58分钟前
5
0
object 类中有哪些方法?

getClass(): 获取运行时类的对象 equals():判断其他对象是否与此对象相等 hashcode():返回该对象的哈希码值 toString():返回该对象的字符串表示 clone(): 创建并返此对象的一个副本 wait...

happywe
今天
6
0
Docker容器实战(七) - 容器中进程视野下的文件系统

前两文中,讲了Linux容器最基础的两种技术 Namespace 作用是“隔离”,它让应用进程只能看到该Namespace内的“世界” Cgroups 作用是“限制”,它给这个“世界”围上了一圈看不见的墙 这么一...

JavaEdge
今天
8
0
文件访问和共享的方法介绍

在上一篇文章中,你了解到文件有三个不同的权限集。拥有该文件的用户有一个集合,拥有该文件的组的成员有一个集合,然后最终一个集合适用于其他所有人。在长列表(ls -l)中这些权限使用符号...

老孟的Linux私房菜
今天
7
0
面试套路题目

作者:抱紧超越小姐姐 链接:https://www.nowcoder.com/discuss/309292?type=3 来源:牛客网 面试时候的潜台词 抱紧超越小姐姐 编辑于 2019-10-15 16:14:56APP内打开赞 3 | 收藏 4 | 回复24 ...

MtrS
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部