HTTP
Get和Post的区别

安全性

幂等性

可缓存性
请求是否可以缓存(get/head)
连接建立断开流程

HTTP特点
- 无连接(补偿:Http的持久连接)
- 无状态 (补偿:Cookie/Session)
Http的持久连接
设置请求头部字段:
connection: keep-alive
time: 20
max: 10 (该连接最多能发送的请求数)
判断一个请求是否结束
- Content-length: 1024
- chunked, 最后会有一个空的chunked
Charles抓包原理
中间人攻击
HTTPS连接建立流程

会话秘钥 == Random S + Random C + 预主秘钥
TCP/UDP
UDP
无连接
面向报文

功能:
- 多端口复用分用

- 差错检测

TCP
特点:面向连接,可靠传输,面向字节流,流量控制,拥塞控制
面向连接
三次握手(规避两次握手时超时重传可能建立不必要的连接)
四次挥手 (存在半关闭状态)
可靠传输
无差错:发生传输错误时候,会超时重传

确认丢失

不重复

按序列到达
面向字节流

流量控制
滑动窗口协议

拥塞控制
慢启动,拥塞避免,快恢复,快重传

DNS解析
域名到IP地址的映射,DNS请求采用UDP数据报,且明文
查询方式
DNS解析常见问题
- DNS劫持问题

- DNS解析转发问题

- 如何解决DNS劫持


Cookie

如何修改cookie?
- 新cookie覆盖旧cookie
- 覆盖规则:name、path、domin等需要和原cookie一致
如何删除cookie?
- 新cookie覆盖旧cookie
- 覆盖规则:name、path、domin等需要和原cookie一致
- 设置cookie的expires=过去的一个时间点,或者maxAge=0
如何保证cookie的安全?
- 对cookie进行加密处理
- 只在https携带Cookie
- 设置Cookie为HttpOnly,防止跨站脚本攻击
Session
Session也是用来记录用户状态,区分用户的;状态存放在服务端
Session和Cookie关系是怎样的?
- session需要依赖于Cookie机制

