《图解HTTP》笔记(二)
2017-07-24 本文已影响13人
帅气Name
HTTP协议
Http是一种无状态协议。协议对于发送过的请求和响应之间的通信状态不进行保存。
客户端发送HTTP请求给服务器端的请求报文:
请求报文服务器端接收后结果以响应报文形式返回:
响应报文Http方法
GET:获取资源
**POST:传输实体主体
**
PUT:传输文件
PUT方法自身不带检验机制,任何人都能上传,因此一般的web网站不使用该方法。
HTTP持久连接、管线化
HTTP/1.1和部分HTTP/1.0想出来持久连接的方法(HTTP keep-alive)。持久化特点:只要任意一端没有明确提出断开连接,则保持TCP连接状态。持久连接减少了TCP连接的重复建立和断开所造成的额外开销,减轻了服务器端的负载。
持久化连接使得多数请求以管鲜化方式发生成为可能,是得能够做到同时并行发送多个请求。
HTTP报文
用于HTTP协议交互的信息被称作为HTTP报文。报文是由多行数据构成的字符串文本。
HTTP报文大致可分为报文首部和报文主体两块。(一般不一定要有报文主体)
请求报文及响应报文的结构
** 请求行**
包含用于请求的方法,请求URI和HTTP版本。
状态行
包含表明响应结果的状态码,原因短语和HTTP版本。
首部字段
包含表示请求和响应的各种条件和属性的各类首部。
压缩传输的内容编码
类似于发邮件时,为使得邮件容量变小,会先用zip压缩文件之后在添加附件发送。HTTP也有类似的内部编码功能。
常用的内容编码有:
- gzip
- compress
- deflate
- idenity
获取部分内容的范围请求
为了解决类似下载过程中遇到网络中断候,必须重头开始的情景。
对于份10000字节大小的资源,如果使用范围请求,可以只请求5001-10000字节内的资源。
Range来指定的范围如下,
//5001到10000字节之间
Range:bytes=5001-10000
//5001字节之后的全部
Range:bytes=5001-
//从开头到3000字节和5000-7000字节的多重范围
Range:bytes=-3000,5000-7000