HTTP协议
TODO:补充细节
三次握手:
1. 发送端 ====》标有syn的数据包===》接收端
2. 接收端 ====》标有syn/ack的数据包===》发送端
3. 发送端 ====》标有ack的数据包===》接收端
http协议是无状态的,为了保存状态引入了cookies
http方法
get 获取资源
get用来请求已经被url识别的资源。服务器解析后就返回。比如请求文本就原样返回,要是cgi就返回执行的结果。
post 传输实体主体
主要目的不是获取响应的主体内容。
put 传输文件
用来传输文件,但是自身不带安全验证,存在安全性问题。一般不用
head 获取报文首部
和get一样,但是不返回报文主体部分。用于确认url的有效性和资源的更新时间
delete 删除文件
与put相反,用来删除。不带验证,一般不用。
options 查询支持的操作
用来查询针对请求url指定的资源支持的方法。
trace 路径追踪
让web服务器将之前的请求通信环回给客户端
查询发出去的请求是如何被加工的
容易引发xst,跨站追踪,通常不用
connect 要求用隧道协议链接代理
实现用隧道协议进行tcp通信
持久连接:
只要任意一端没有明确的提出断开连接,则保持tcp连状态
管线化:
并行发送多个请求
http报文
分块传输编码
在传输大容量数据的时候,通过把数据分割成多块,让浏览器逐步显示页面
数据转发程序
代理
- 利用缓存,减少带宽
- 组织内部针对特定网站的访问控制
- 获取日志为主要目的
网关
提供非http服务
隧道
确保客户端与服务器进行安全的通信。包括远距离。
no-cache:防止从缓存中返回过期的资源
no-store:不进行缓存