图解HTTP 第三章HTTP报文内的HTTP信息
Posted 雄研识测
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图解HTTP 第三章HTTP报文内的HTTP信息相关的知识,希望对你有一定的参考价值。
1、HTTP报文
1)、报文首部
服务器或客户端需处理的请求或响应的内容及属性
2)空行
16进制 0x0a
16进制 0x0d
CR(Carriage Return,回车)‘\n’
LF(Line Feed, 换行符)'\r'
3)报文主体
被发送的数据
非必须项
unix只有'\n'
windows包含'\n\r'
mac只有'\r'
2、请求报文及响应报文的结构
请求
请求行 包含用于请求的方法,请求URI和HTTP版本
响应
状态行 包含响应结果的状态码,原因短语和HTTP版本
都包含:通用首部、请求首部、响应首部和实体首部
可能包含Cookie等
3、编码提升传输速率
牺牲CPU资源来提升传输速率
报文主体和实体主体
请求和响应的实体
HTTP基本单位(8位组字节流)
报文主体
实体主体
传输时进行压缩
gzip(GNU zip)
compress(UNIX系统的标准压缩)
deflate(ZLIB)
identity(不进行编码)
4、发送多种数据的多部分对象集合
图片或文本上传时,报文主体通常包含多类型的实体
multipart/form-data:在 Web 表单文件上传时使用
multipart/byteranges:状态码206(Partial Content 部分内容)响应报文包含了多个范围的内容时使用
boundary 表示分隔符,用于划分多部分对象集合指明的各类实体。在 boundary 字符串指定的各个实体的起始行之前插入“--”标记(例如:--AaB03x、--THIS_STRING_SEPARATES),而在多部分对象集合对应的字符串的最后插入“--”标记(例如:--AaB03x--、--THIS_STRING_SEPARATES--)作为结束
5、获取部分内容的范围请求
为继续获取中断之后的内容,设置“范围请求”
使用首部字段Range指定byte范围
Range:byte=-300,500-600
对于多重范围的范围请求,响应会在首部字段 Content-Type 标明 multipart/byteranges 后返回响应报文。
Range:byte=500-
Range:byte=500-1000
中间范围500-1000字节
500之后的全部
从头开始到300,以及500-600的多范围请求
如果服务器端无法响应范围请求,则会返回状态码 200 OK 和完整的实体内容
6、内容协商返回最合适的内容
内容协商机制是指客户端和服务器端就响应的资源内容进行交涉,然后提供给客户端最为合适的资源。
内容协商会以响应资源的语言、字符集、编码方式等作为判断的基准。
Accepet
Accepet-Charest
Accept-Encoding
Accept-Language
Content-Encoding
下边是xmind图片方便记忆:
以上是关于图解HTTP 第三章HTTP报文内的HTTP信息的主要内容,如果未能解决你的问题,请参考以下文章