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