1. HTTP协议
超文本传输协议
- 请求/响应报文
-
请求
-
响应
-
请求方式
- GET
- 请求参数以?分割拼接到URL后面
- 参数长度限制2048个字符
- 不安全
- POST
- 请求参数在Body里面
- 参数长度没有限制
- 比较安全
安全:不应该引起server端的任何状态变化 幂等性:同一个请求方法执行多次和执行一次的效果完全相同 可缓存性: 请求是否可以被缓存 复制代码
- HEAD
- PUT
- DELETE
- OPTIONS
- GET
-
- 状态码
- 连接建立流程
- HTTP的特点
- 无连接
- HTTP的持久连接
- 头部字段
- Connection : keep-alive
- time : 20 —— 连接保持多久
- max : 10 —— 最多可以发送多少次
- 怎样判断请求结束
- Content-length : 1024
- chunked,最后会有一个空的chunked
- Charles抓包原理
- 中间人攻击漏洞
- 头部字段
- HTTP的持久连接
- 无状态
- Cookie/Session
- 无连接
2. HTTPS与网络安全
- HTTPS和HTTP的区别
- HTTPS连接建立流程
- HTTPS采用的加密手段
- 非对称加密
- 对称加密
3. TCP/UDP
- UDP
- 特点
- 无连接
- 尽最大努力交付
- 面向报文,既不合并,也不拆分
- 功能
- 复用
- 分用
- 差错检测
- 特点
- TCP
- 特点
- 面向连接
- 数据传输开始之前需要建立连接
- 三次握手 —— 规避请求超时异常
- 数据传输结束之后需要释放连接
- 四次挥手 ——
- 数据传输开始之前需要建立连接
- 可靠传输
-
无差错
-
不丢失
-
不重复
-
按序到达
-
停止等待协议
- 无差错情况
- 超时重传
- 确认丢失
- 确认迟到
-
- 面向字节流
- 流量控制
- 滑动窗口协议
- 拥塞控制
- 慢开始、拥塞避免
- 快恢复、快重传
- 面向连接
- 特点
4. DNS解析
- DNS解析查询方式
- 递归查询
- 迭代查询
- 常见问题
- DNS劫持问题
- 和HTTP没有关系
- DNS解析发生在HTTP建立连接之前
- DNS解析请求使用UDP数据报,端口号53
- 解决
- httpDNS
- 长连接
- 和HTTP没有关系
- DNS解析转发问题
- DNS劫持问题
5. Session/Cookie
Cookie
- HTTP协议无状态特点的补偿
- 客户端发送的cookie在http请求报文的Cookie首部字段中
- 服务器端设置http响应报文的Set-Cookie首部字段
- 修改cookie
- 新cookie覆盖旧cookie
- 覆盖规则:name、path、domain等需要与原cookie一致
- 删除cookie
- 新cookie覆盖旧cookie
- 覆盖规则:name、path、domain等需要与原cookie一致
- 设置cookie的expires=过去的一个时间点,或者maxAge=0
- 如何保证cookie的安全
- 加密处理
- 只在https上携带cookie
- 设置Cookie为httpOnly,防止跨站脚本攻击