一、http与https的区别:传输信息安全性不同,连接方式不同,端口不同,证书申请方式不同

1、传输信息安全性不同
(1)http协议:是超文本传输协议,信息是明文传输,如果攻击者截取了web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息
(2)https协议:是具有安全性的ssl加密传输协议,为浏览器和服务器之间的通信加密,确保数据传输安全
在这里插入图片描述
2、连接方式不同
(1)http协议:http链接是简单的,无状态的
(2)https协议:是由SSL+HTTP协议构建的,可进行加密传、身份认证的网络协议
3、端口不同
(1)http协议:使用的端口是80。
(2)https协议:使用的端口是443.
4、证书申请方式不同
(1)https协议:需要到ca申请证书,一般免费证书很少,需要交费
(2)http协议:免费申请

二、三次握手、四次挥手

TCP的6种标志符

  • SYN(synchronous),建立联机
  • ACK(acknowledgement),确认
  • PSH(push),传输
  • FIN(finish),结束
  • RST(reset),重置
  • URG(urgent),紧急

1、三次握手:指在发送数据的准备阶段,服务器和客户端之间需要三次交互(即建立TCP连接,是指建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立)

   第一次握手:建立连接时,客户端向服务器发送一个SYN包,并进入SYN_SENT状态,等待服务器确认

   第二次握手:当服务器接收到客户端请求后,此时要给客户端给一个确认信息ACK,同时发送SYN包,此时服务器进入SYN_RECV状态

   第三次握手:客户端收到服务器发的ACK+SYN包后,向服务器发送ACK,发送完毕之后,客户端和服务器进入 ESTABLISHED(TCP连接成功)状态,完成三次握手

2、四次挥手:所谓四次挥手就是说关闭TCP连接的过程,当断开一个TCP连接时,需要客户端和服务器共发送四个包确认

    第一次挥手:客户端发送一个FIN,用来关闭客户端到服务器的数据传输,客户端进入FIN_WAIT_1状态

    第二次挥手:服务器收到FIN后,发送一个ACK给客户端,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序 号),服务器进入CLOSE_WAIT状态

    第三次挥手:服务器发送一个FIN,用来关闭服务器到客户端的数据传输,服务器进入LAST_ACK状态

    第四次挥手:客户端收到FIN后,客户端进入TIME_WAIT状态,接着发送一个AKC给服务器,确认序号为收到序号+1,服务器进入CLOSED状态,完成四次挥手

典型问题:为什么建立连接是三次握手,而关闭连接却是四次挥手呢?

    这是因为服务端在LISTEN状态下,收到建立连接请求的SYN报文后,把ACK和SYN放在一个报文里发送给客户端。而关闭连接时,当收到对方的FIN报文时,仅仅表示对方不再发送数据了但是还能接收数据,己方也未必全部数据都发送给对方了,所以己方可以立即close,也可以发送一些数据给对方后,再发送FIN报文给对方来表示同意现在关闭连接,因此,己方ACK和FIN一般都会分开发送。
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐