HTTP
超文本传输协议
- 请求/响应报文
- 连接建立流程
- HTTP的特点
1. 请求/响应报文
请求报文
请求报文包括:
- 请求方法
- 请求URL
- 协议版本
- 请求首子段键值对
- 报文主体(一般在请求中是没有报文主体的)
响应报文
响应报文包括:
- 协议版本
- 状态吗
- 响应首字段
- 响应报文主体
2. 请求方法有哪些
- GET
- POST
- HEAD
- PUT
- DELETE
- OPTIONS
6种请求方式, 常见的GET和POST又有什么区别呢?
GET:获取资源
安全的 幂等的 可缓存的
安全:请求不会对servers的状态产生影响
幂等:相同的请求,他的执行过程是相同的,不会改变
可缓存:在请求链路中,GET请求可能会在代理服务器中被缓存,我们得到的可能是代理服务器的缓存结果
POST:处理资源
与GET相反,POST会对服务器的状态产生影响
另外,GET请求的参数是明文传输的,且有长度上限,最长为2048个字节。
3. 状态码
2xx:响应成功(200)
3xx:重定向(301、300)
4xx:请求出错,服务器没有相应(401、404)
5xx:服务器出错
TCP
1. TCP的建立流程
三次握手、四次挥手
2. HTTP的特点
无连接
- HTTP持久连接
无状态 - Cookies / Session
HTTP的持久链接方案需要在head字段中设置以下三个字段:
Connection:keep-alive(持久化)
time:20(持久时间)
max:10(持续期间最大连接数)
持久连接
怎样判断一个连接已经结束?
- 通过响应首字段中的Content-length
- chunked, 连续传输中手字段中的chunked字段是否为空,为空则表示没有后续了。
Charles抓包原理
中间人攻击
HTTP与HTTPS
HTTPS就是安全的HTTP
HTTPS是在HTTP系协议层和TCP传输层之间增加了一层SSL/TLS加密协议,保证了HTTP的请求安全。
HTTPS加密流程
会话密钥:
即消息传递中使用的对称加密的密钥
TCP/UDP传输协议
- TCP:传输控制协议
- UDP:用户数据报协议
UDP的特点
- 无连接
- 尽最大努力交付(也就是不保证传输成功,没有重传机制)
- 面向报文
UDP的功能
- 复用、分用
- 基本的差错检测
无连接表示UDP协议不用建立连接,也就没有TCP的握手挥手过程
而面向报文说明UDP对报文的传输是直接的,不会进行拼装和拆分
TCP的特点
- 传输可靠 (无差错、不丢失、不重复、按序到达)
- 面向连接的 (三次握手四次挥手)
- 面向字节流的 (会将传输报文根据窗口和缓存区的大小拆分,组合传输字节)
- 流量控制(根据接收方窗口大小动态调整发送窗口的大小,限制传输流量。进行在TCP缓冲区)
- 拥塞控制(指数递增,达到阈值线性增长,拥塞后下降到新的阈值,而后线性增长)
Cookies和Session
Cookies储存在用户方
Session储存在服务端
Session依赖于Cookies,是Cookies的一个拼接字段:Session=xxxxx
他们适用于解决HTTP无状态的问题而产生的。
Cookies的安全策略有:
- 对Cookies加密传输
- 使用HTTPS传输时才使用Cookies
网友评论