http 是什么
- 是一种数据传输协议。
- 它工作在应用层
- 是一种无状态协议。
- 是一种可靠的传输协议(可以延伸出TCP, UDP)。
优点
简单,易扩展。
缺点:
明文,容易被查看
无身份验证,容易被冒充
完整性校验,容易被篡改
解决方法,引入https
在http与tcp中间加入一个加密层。
https
优点: 加密防止查看,认证防止冒充,完整性防止篡改。
加密方法:对称加密,速度快,容易被窃取
非对称加密,速度慢,不会被窃取
实际使用:先使用非对称加密交换密钥,再通过对称加密通信。
https 缺点:速度慢,证书要高额费用
https建立链接过程
方法
post,put,patch, get, head, , delete, options, connect, trace
get, post 区别,从作用,参数,安全,幂等,去比较
作用:获取资源,提交资源
参数:放在地址里,放在实体里
安全:指的是会不会改变数据
幂等性:get,head, put, delete幂等,post非幂等
可缓存,get 可缓存
请求格式
请求格式 行,头,实体
返回格式 行(状态码),头,实体
状态码
https://mp.weixin.qq.com/s/mpIudvw-3S3BFJDSh6izUg 很全的。
https://mp.weixin.qq.com/s/U3P66NJShKPvp_JcJj2zwg
3XX https://blog.csdn.net/snowin1994/article/details/86478256
301 永久,2临时,不限制方法,3临时,要用get
304 无变化,307临时,不允许变post
https://mp.weixin.qq.com/s/U3P66NJShKPvp_JcJj2zwg
405 禁止方法,413请求体过大,414uri过长。
500 服务端错误,501 未实现,502网关错误,503服务不可用(维护或负载过大)504网关超时,505http版本不支持
http 1.x 缺陷
客户端需要使用多个连接才能实现并发和缩短延迟。
不会压缩请求和响应,导致不必要的网络流量
不支持有效资源优先级,使得tcp连接利用率低下。
http 2.0
把数据分成头部和数据帧,并压缩成二进制。
只会有一个tcp链接,承载双向数据流。
服务端主动推送
首部压缩,haffman
http 1.1 新特性
默认是长链接
支持流水线
支持同时打开多个tcp链接
支持虚拟主机
新增状态码100
支持分块传输编码
新增缓存处理命令max age
TCP UDP
tcp 有连接,一对一,可靠,流量控制,拥塞控制,面向字节流
udp 无连接,一对多,多对多,面向报文,没有拥塞控制,不可靠
三次握手
三次原因,确认起始序列号,确认双方通信连接状态。
四次挥手
四次挥手原因,服务端还有可能有数据要发送。
timeWait 时长 2msl
原因,防止服务端未收到关闭确认消息,会重新发送关闭请求。
确认原连接产生的报文都已经消失,新连接不会接收到旧报文。
流量控制
拥塞控制 (慢开始,拥塞控制,快重传,快恢复)
加倍
+1
cwnd /=2 , +1