1.HTTP
超文本传输协议
- 请求相应报文
- 连接建立流程
- HTTP的特点
(1)请求/响应报文
a.请求报文
1.png
b.响应报文
2.png
问题
HTTP的请求方式都有哪些?
GET、POST、HEAD 、PUT、DELETE、OPTIONS
GET和POST方式的区别?
(1)GET请求参数以?分割拼接到URL后面,POST请求参数在Body里面
(2)GET参数长度限制2048个字符,POST一般没有限制
(3)GET请求不安全,POST请求比较安全
3.png
-
安全性
不应该引起Server端的任何状态变化
4.png - 幂等性
同一个请求方法执行多次和执行一次的效果完全相同。 - 可缓存性
请求是否可以被缓存。
你都了解哪些状态码,它们的含义是什么?
6.png
2xx: 响应成功
3xx: 网络重定向
4xx: 客户端发起请求的本身存在某些问题
5xx: Server端本身有异常
HTTP连接建立流程
7.png
HTTP 特点
无连接
HTTP的持久连接
无状态
Cookie/Session
持久连接
8.png
头部字段:
11.png
Connection: keep-alive
time: 20
max: 10
怎样判断一个请求是否结束的?
Content-length : 1024
chunked, 最后会有一个空的chunked
Charles抓包原理是怎样的?
利用HTTP中间人攻击漏洞来实现的。
9.png
2.HTTPS与网络安全
HTTPS与HTTP有怎样的区别?
HTTP = HTTP + SSL/TSL
10.png
HTTPS连接建立流程是怎样的 ?
11.png
会话密钥
会话密钥 = random S + random C + 预主密钥
HTTPS都使用了哪些加密手段?为什么?
连接建立过程使用非对称加密
,非对称加密很耗时! 后续通信过程使用对称加密。
非对称加密
12.png
对称加密
13.png
3.TCP与UDP相关
14.png
UDP (用户数据报协议)
特点
无连接、尽最大努力交付、面向报文
面向报文
既不合并,也不拆分
15.png
功能:
复用、分用、差错检测
复用、分用
16.png
差错检测
17.png
TCP(传输控制协议)
特点
面向连接、可靠传输、面向字节流、流量控制、拥塞控制
面向连接
数据传输开始之前,需要建立连接,数据传输之后,需要释放连接。
三次握手
18.png
为什么要进行三次握手?
从客户端请求超时的角度来回答这个问题。
四次挥手
19.png
可靠传输
无差错、不丢失、不重复、按序到达。
停止等待协议
无差错情况、超时重传、确认丢失、确认迟到。
无差错情况
20.png
超时重传
21.png
确认丢失
22.png
确认迟到
23.png
面向字节流
24.png