http协议:
HTTP是超文本传输协议,是建立在TCP传输控制协议之上的应用层协议,有三个版本:
1 HTTP 1.0 一次连接只能处理一次请求
2 HTTP 1.1 一次连接可以处理多次请求(长连接),新增Etag,If-None-Match(更准确地控制缓存),range(用于断点续传)等头部字段
3 HTTP 2.0 可以并发处理多次请求(多路复用),头部数据压缩 ,服务器推送,采用二进制格式传输数据
TCP协议
TCP是传输控制协议,特点是三次握手和四次挥手
三次握手是为了防止已经失效的连接请求报文段传到服务器而产生错误
1 客户端请求连接
2 服务器收到请求后,确认联机信息,并通知客户端
3 客户端收到响应并验证成功后,通知服务器确认连接,
四次挥手断开连接过程
1 客户端申请断开连接
2 服务器收到后,如果没有任务,通知客户端可以断开连接
3 客户端收到信息,断开连接并通知服务器
4 服务器收到后,
UDP协议
UDP用户数据报协议,是无连接的传输层协议,不可靠连接,是报文搬运工,协议控制项少,报文简单,体积小,速度快,实时性高,电话会议,多媒体数据等场景就采用UDP协议。
https协议
HTTP报文时以明文传输的,可以通过抓包的方式查看报文内容,容易被劫持篡改,于是就有了https,https = http + TLS(安全传输协议)
HTTP和HTTPs的区别
1 https使用443端口,http使用80端口
2 https需要申请证书
3 HTTP是超文本传输协议,是明文传输,https经过SSL加密,传输更安全
4 https比http慢,因为https除了TCP的三个包,还有SSL握手的九个包
TLS协议
TLS协议:安全传输协议,用于两个应用程序之间提供保密性和数据完整性,利用非对称加密演算来对通信方做身份验证,之后交换对称密匙作为会谈密匙,因此https分为两个阶段
1 通过非对称加解密确认对方身份合法,若合法就生成会话密匙
2 报文发送前,先用会话密匙进行对话加密在传输
TLS四次握手
1 客户端请求建立SSL连接,服务器接收请求并向客户端发送一个随机数A和CA机构颁发的证书
2 客户端对证书验证通过后,生成一个随机数B并用公匙加密,同时用B生成一段签名,发送给服务器
3 服务器收到后用私匙解密,解密后的key与客户端发送的签名进行比较,验证通过后生成一个随机数C并用私匙加密,同时用C生成一个hash值,发送给客户端
4 客户端用公匙解密并校验hash值后,两端利用A,B,C通过一定算法生成会话密匙,后续报文将通过会话密匙对称加密进行传输