网络请求相关

HTTP

超文本传输协议
  • 请求/响应报文
  • 连接建立流程
  • HTTP的特点
1. 请求/响应报文

请求报文
请求报文包括:

  • 请求方法
  • 请求URL
  • 协议版本
  • 请求首子段键值对
  • 报文主体(一般在请求中是没有报文主体的)

响应报文
响应报文包括:

  • 协议版本
  • 状态吗
  • 响应首字段
  • 响应报文主体
2. 请求方法有哪些
  1. GET
  2. POST
  3. HEAD
  4. PUT
  5. DELETE
  6. 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的建立流程

三次握手、四次挥手

TCP的建立流程

2. HTTP的特点

无连接

  • HTTP持久连接
    无状态
  • Cookies / Session

HTTP的持久链接方案需要在head字段中设置以下三个字段:
Connection:keep-alive(持久化)
time:20(持久时间)
max:10(持续期间最大连接数)

持久连接

怎样判断一个连接已经结束?
  1. 通过响应首字段中的Content-length
  2. chunked, 连续传输中手字段中的chunked字段是否为空,为空则表示没有后续了。
Charles抓包原理

中间人攻击

HTTP与HTTPS

HTTPS就是安全的HTTP
HTTPS是在HTTP系协议层和TCP传输层之间增加了一层SSL/TLS加密协议,保证了HTTP的请求安全。


HTTPS加密流程

会话密钥:
即消息传递中使用的对称加密的密钥

TCP/UDP传输协议

  • TCP:传输控制协议
  • UDP:用户数据报协议

UDP的特点

  1. 无连接
  2. 尽最大努力交付(也就是不保证传输成功,没有重传机制)
  3. 面向报文

UDP的功能

  1. 复用、分用
  2. 基本的差错检测

无连接表示UDP协议不用建立连接,也就没有TCP的握手挥手过程
而面向报文说明UDP对报文的传输是直接的,不会进行拼装和拆分

TCP的特点

  1. 传输可靠 (无差错、不丢失、不重复、按序到达)
  2. 面向连接的 (三次握手四次挥手)
  3. 面向字节流的 (会将传输报文根据窗口和缓存区的大小拆分,组合传输字节)
  4. 流量控制(根据接收方窗口大小动态调整发送窗口的大小,限制传输流量。进行在TCP缓冲区)
  5. 拥塞控制(指数递增,达到阈值线性增长,拥塞后下降到新的阈值,而后线性增长)
超时重传.jpg
确认迟到.jpg
确认丢失.jpg

Cookies和Session

Cookies储存在用户方
Session储存在服务端
Session依赖于Cookies,是Cookies的一个拼接字段:Session=xxxxx

他们适用于解决HTTP无状态的问题而产生的。
Cookies的安全策略有:

  1. 对Cookies加密传输
  2. 使用HTTPS传输时才使用Cookies

你可能感兴趣的:(网络请求相关)