http协议三次握手四次挥手过程
客户端与服务端建立连接的三次握手过程是为了增加可靠性
应用层负责业务,
tcp层负责可靠传输(丢失,超时,数据错误,重复),
ip层负责路由寻址,
http属于应用层的协议,是建立在tcp上的;
通俗点
”喂喂~你听得见我咩?“
”啊~喂喂~,我听得见你啊,你听得见我咩?“
”啊啊啊~听得见听得见"
"噢噢,我跟你说噢~!barabara......“
三次握手和你讲啥语言(HTTP)没啥关系。跟你打电话的运营商(TCP)也没啥关系。
那跟啥有关系?跟你如何保证对方能准确收到消息有关系。
你看人家 UDP,管你有没有收到,我瞎JB那么一问你瞎JB那么一回。
管你听见没,没回复我再问一遍。
管你收到没,反正你戳一下我动一下。
http是应用层协议,它的任务是与服务器交换信息。至于怎么连到服务器,怎么保证数据正确,http不管。事实上它总是假设数据是正确地传输的。
而tcp的任务是保证连接的可靠,包括防丢、防错。为了做到这些,在初次连接时要进行3次握手,以保证确实连接到了目标机器。而连接上后具体传送什么数据,tcp是不管的。
别的应用层协议也能通过tcp进行,那么这种协议在底层也进行3次握手。
在某些情况下,http可以不通过tcp实现,那就不需要3次握手。
比如,我做了一把遥控咖啡壶,遥控器和壶通过红外直接连接,通过http协议post提交煮咖啡的指令,get获取是否已经煮好。http字符直接调制到红外上,此时http应用层下面直接是物理层,当然不存在3次握手了,连ip地址和mac地址也不存在。
第四次握手关闭连接