http:
是一个客户端和服务器端请求和应答的标准,用于从www服务器传输超文本到本地浏览器的超文本传输协议;
https:
是以安全为目标的http通道,在http下加入了ssl层加密;
建立一个信息安全通道,来确保数据的传输,确保网站的真实性;
区别
http是明文传输,https是安全的;
http默认端口为80,https为443;
http连接是无状态的,https握手阶段比较费时;
https缓存不如http高效,会增加数据开销;
https需要ca证书,费用较高;
ssl证书需要绑定ip;
https工作原理
1、url访问服务器,建立ssl链接;
2、接收到客户端的请求后,会把网站证书传输给客户端;
3、客户端和web服务端开始协商ssl链接的安全等级;
4、协商后建立会话密钥,
5、web服务器通过自己的私钥解密出会话密钥;
6、web服务器通过会话密钥加密与客户端之间的通信。
TCP三次握手和TCP四次挥手
三次握手
1、建立连接时,客户端发送syn包到服务器,等待服务器确认;
2、服务器接收到后也发送一个自己的syn包并确认客户端的syn(ack+1);
3、客户端接收到服务端的syn+ack包后,发送一个确认包,完毕后才可以开始传输数据;
四次挥手:
1、客户端发送连接释放报文;
2、服务器接收到连接释放报文,发送确认报文,发送后服务器进入关闭等待状态;
3、客户端接收到服务器端发送的确认报文之后,进入终止等待状态,等待服务器发送连接释放报文;
4、服务器发送完最后的数据后,发送连接释放报文,然后进入最终确认状态;
5、客户端接收到服务端发送的连接释放报文后,发送确认报文;
6、服务器接收到确认报文之后进入关闭状态,客户端相继等待一定时间后也进入关闭状态;
TCP/IP如何保证数据包传输的有序可靠
通过ACK回复 超时重发
1、为了保证数据包的可靠传递,发送方必须把已发送的数据包保留在缓冲区;
2、为每个已发送的数据包启动一个定时器;
3、在超时前收到回应,则释放缓存区的数据包;
4、重发;
5、接收方收到数据包之后,先进行CRC校验,正确则 把数据发送到上层协议,然后发送一个应答包,有数据发送则连通数据一起发送;
TCP和UDP的区别
TCP是面向连接的,UDP是面向无连接的;
TCP可靠的,UDP不可靠的;
TCP单向传播,UDP可单播,多播,广播;
UDP头部开销更小,数据传输速率更高,实时性更好;