1 HTTPS和HTTP有哪些区别
两者的主要区别在于安全性和数据加密:
1.加密层:HTTPS 在HTTP 的基础上增加了SSL/TLS 协议作为加密层,确保数据传输的安全性。而HTTP 数据传输是明文的,容易受到攻击。
2.HTTP 连接建立相对简单, TCP 三次握手之后便可进行 HTTP 的报文传输。而 HTTPS 在 TCP 三次握手之后,还需进行 SSL/TLS 的握手过程,才可进入加密报文传输。
3.端口:HTTPS 通常使用端口443 ,而HTTP 使用端口80。
4.HTTPS 协议需要向 CA 申请数字证书,来保证服务器的身份是可信的。
2 HTTPS的工作原理(HTTPS建立连接的过程)
HTTPS 主要基于SSL/TLS 协议,确保了数据传输的安全性和完整性, 其建立连接并传输数据的过程如下:
1 密钥交换:客户端发起HTTPS请求后,服务器会发送其公钥证书给客户端。
2 证书验证:客户端会验证服务器的证书是否由受信任的证书颁发机构(CA )签发,并检查证书的有效性。
3 加密通信:一旦证书验证通过,客户端会生成一个随机的对称加密密钥,并使用服务器的公钥加密这个密钥,然后发送给服务器。
4 建立安全连接:服务器使用自己的私钥解密得到对称加密密钥,此时客户端和服务器都有了相同的密钥,可以进行加密和解密操作。
5 数据传输:使用对称加密密钥对所有传输的数据进行加密,确保数据在传输过程中的安全性。
6 完整性校验:SSL/TLS协议还包括消息完整性校验机制,如消息认证码,确保数据在传输过程中未被篡改。
7 结束连接:数据传输完成后,通信双方会进行会话密钥的销毁,以确保不会留下安全隐患。
3 TCP和UDP的区别
Transmission Control Protocol & User Datagram Protocol
1.有无连接:TCP有是有连接的(需要三次握手——传输——四次挥手),UDP无连接(直接传输)。
2.播报形式:TCP只支持单播,UDP单播,多播,广播。
3.传播方式:TCP是面向字节流的,接收方收到的字节流与发送方的可以不同。UDP是面向应用报文的,发送方发什么接收方就收到什么。
4.可靠性:TCP是可靠的,保证不会出现传输差错(误码,丢失,乱序,重复),因为TCP能够检测并重传丢失或损坏的数据包。适用于可靠的文件传输,UDP不可靠,UDP不提供错误恢复机制,遇上传输差错不会解决而是忽视,适用于实时应用。
TCP的可靠性是:
1*三次握手,四次挥手
2*超时重传机制
3*差错控制:序列号和确认号机制
4*拥塞控制
5*流量控制
5.报文结构:TCP结构复杂,包含序列号、确认号等信息,首部最小20字节,最大60字节。UDP首部只有8字节。
6.TCP具有拥塞控制机制,可以根据网络状况调整数据传输速率;UDP没有拥塞控制,发送速率通常固定。
7.TCP通过滑动窗口机制进行流量控制,避免接收方处理不过来;UDP没有流量控制。
8.性能开销:由于TCP的连接建立、数据校验和重传机制,其性能开销通常比UDP大;UDP由于简单,性能开销小。