一. WWW
欧洲核子研究组织蒂姆.博纳世.李的的知识共享假设
通过URL(UniForm Resource Location)统一资源定位符, HTTP通讯协议, HTML(HyperText Marked Language)超文本表示语言, 全世界分享知识.
1.1 URL
1.2 URI
二. HTTP概述
- 用于服务端和客户端之间通讯
- 通过请求和响应进行通讯
- HTTP是不保存状态的协议, 协议本身不保留任何信息
HTTP1.1加入了cookie, 就可以保存管理状态了 - 通过URL定位资源
- 告知服务器意图的HTTP方法
- GET: 获取资源
- POST: 传输实体
- PUT: 传送文件, 但是由于不带验证机制, 一般网站不用
- HEAD: 和GET方法一样, 只是不返回报文主体, 用于确认URI的有效性
- DELETE: 和PUT类似, 用来删除文件, 同样由于安全问题, 一般不用
- TRACE: 通常不用
- CONNECT: 用隧道协议连接代理, 使用SSL和TLS安全协议, 加密后, 经网络隧道传输
- 持久连接节省通讯量
- 持久连接
初期由于文本传输, 数据量小, 每次HTTP通讯就断开一次TCP连接
后期建立一次TCP连接, 会有多次HTTP请求和响应
- 管线法

- 持久连接
-
三. HTTP报文内的信息
3.1 HTTP报文
3.1.1 请求报文


请求行: 包含用于请求的方法,请求 URI 和 HTTP 版本。
-
3.1.2 响应报文


状态行: 表明响应结果的状态码,原因短语和 HTTP 版本
其他: 可能包含 HTTP 的 RFC 里未定义的首部(Cookie 等)
3.2 编码提升传输速率
3.2.1 报文主体和实体主体的差异
3.2.1 压缩传输的内容编码
gzip
- compress
- deflate
-
3.3.3 分割发送的分块传输编码
压缩传输的内容编码,每块会用十六进制标记大小, 最后一块会使用0(CR+LF)标记
3.3 发送多种数据
multipart/form-data
web表单multipart/byteranges
状态码206响应报文, 包含多个范围的内容使用3.4 获取部分内容的范围请求
3.5 内容协商返回最合适的内容

服务器驱动协商(Server-driven Negotiation)
- 客户端驱动协商(Agent-driven Negotiation)
- 透明协商(Transparent Negotiation)
是服务器驱动和客户端驱动的结合体
