1.HTTP协议
超文本传输协议
- 请求/响应报文
HTTP的请求方法有哪些?
HTTP1.1支持7种请求方法:GET、POST、HEAD、OPTIONS、PUT、DELETE和TARCE。
GET、POST的区别?
GET请求参数以?分割拼接到URL后面,POST请求参数在Body里面。
GET请求长度限制2048个字符,POST没有长度的限制
安全的:不应该引起Server端的任何变化
幂等的:同一个请求方法执行多次和执行一次的效果是完全相同
可缓存的:请求是否可以被缓存
-
连接建立流程
- HTTP的特点
无连接(短链接):可以支持持久链接
打开持久链接的方法
头部字段
Connect:keep-alive
time:20 (链接事件)
max:10 (最多可以发生多少个http请求)
判断一个请求是否结束的?
Content-length:1024
chunked:最后会有一个空的chunked
Charles抓包原理?
利用HTTP的中间人攻击的漏洞
代理服务器横着Client和Server中间
无状态:Session与Cookie解决
- 状态码的关键字
link
2.HTTPS协议与网络安全相关
- HTTP和HTTPS的区别?
HTTPS = HTTP + SSL/TLS
在应用层(HTTP)的下面,传输层(TCP)的上面插入了SSL/TLS协议\ -
HTTPS的建立流程
- HTTPS是使用了哪些加密手段?
- 链接建立的过程中,预主秘钥是进行的非对称加密 (效率低,耗时)
- 后续对话使用对称加密 会话秘钥进行对称加密和解密 (效率高)
-
对称加密和非对称加密
3.UDP(用户数据报协议)详解
- 无连接
- 尽最大努力交付 (不可靠)
- 面向报文。既不拆分,也不合并
- 功能
复用和分用
差错检测
4.TCP(传输控制协议)详解
- 面向连接
数据传输之前,建立连接。三次握手,四次挥手
三次握手的原因:因为如果是两次,第一次SYN的报文超时了,第二次重连连接上了,这时第一次的SYN到达了,server就会有两次连接。有了ACK,client会忽略第一次超时的。
四次挥手的原因:连接是全双工的,两条通道。需要分别都关闭。 - 可靠传输 (停止等待)
- 无差错
- 不丢失
- 不重复
-
按序到达
-
面向字节流
- 流量控制
滑动窗口协议
- 拥塞控制
慢开始,拥塞避免,
快恢复,快重传
5.DNS详解
域名到IP地址的映射,DNS解析采用UDP数据报文。且明文传输。循环递归查询。
DNS劫持。钓鱼网站
DNS安全解决方法。
- HTTPDNS
- 长链接
6.Session与Cookie详解
HTTP协议无状态特点的补偿
-
Session(sever端)
Session记录用户状态,区分用户,状态保存在服务器端
- Cookie (client端)
主要用来记录用户状态,区分用户,状态保存在客户端
怎样修改(删除)Cookie?
新Cookie覆盖旧Cookie
覆盖规则:name。path。domain与Cookie一致
删除设置Cookie的expire=过去时间点或者maxAge=0
怎样保证Cookie的安全?
对Cookie加密
只在https上携带Cookie
设置Cookie为httpOnly,反正跨站的脚本攻击