要解决的问题
1:http请求和tcp的三次握手什么关系,及整个请求过程?
2:为什么要进行三次握手?
3:什么是三次握手?
4:为什么要进行四次挥手?
5:什么是四次挥手?
http请求和tcp的三次握手什么关系,及整个请求过程?
当在浏览器中输入www.baidu.com后,首先回经过应用层开始http的request,之后开始
进入到传输层,开始为http的request和response做请求的条件即建立三次握手来保证通
话的正确性。当三次握手建立完之后服务器会进行相应。
为什么要进行三次握手?
用一个生活中的场景来说明一下
媳妇让你出去打酱油:
第一次对话:
老婆让甲出去打酱油,半路碰到一个朋友乙,甲问了一句:哥们你吃饭了么?
结果乙带着耳机听歌呢,根本没听到,没反应。甲心里想:跟你说话也没个音,不跟你说
了,沟通失败。说明乙接受不到甲传过来的信息的情况下沟通肯定是失败的。
如果乙听到了甲说的话,那么第一次对话成功,接下来进行第二次对话。
第二次对话:
乙听到了甲说的话,但是他是老外,中文不好,不知道甲说的啥意思也不知道怎样回答,
于是随便回答了一句学过的中文 :我去厕所了。甲一听立刻笑喷了,“去厕所吃饭”?道不同
不相为谋,离你远点吧,沟通失败。说明乙无法做出正确应答的情况下沟通失败。
如果乙听到了甲的话,做出了正确的应答,并且还进行了反问:我吃饭了,你呢?那么第
二次握手成功。
通过前两次对话证明了乙能够听懂甲说的话,并且能做出正确的应答。 接下来进行第三次
对话。
第三次对话:
甲刚和乙打了个招呼,突然老婆喊他,“你个死鬼,打个酱油咋这么半天,看我回家咋收拾
你”,甲是个妻管严,听完吓得二话不说就跑回家了,把乙自己晾那了。乙心想:这什么人
啊,得,我也回家吧,沟通失败。说明甲无法做出应答的情况下沟通失败。
如果甲也做出了正确的应答:我也吃了。那么第三次对话成功,两人已经建立起了顺畅的
沟通渠道,接下来开始持续的聊天。
通过第二次和第三次的对话证明了甲能够听懂乙说的话,并且能做出正确的应答。
可见,两个人进行有效的语言沟通,这三次对话的过程是必须的。
什么是三次握手?
第一次握手:
客服端向服务器端发送一个syc(同步包) 服务器是监听状态
第二次握手
服务器端接受到syc(包),并向客户端发送ack(确认包:表示我收到了你发送的syc包
了) 总共发送的包 syc+ack 服务器是接受状态
第三次握手
客户端收到syc+ack包,并且再向服务器端发送ack,表示我知道你收到我发送的包,此时
服务器端收到ack包服务器端表示 我知道你收到我发送的确定包了。此时是建立连接状态
客户端和服务器端建立连接开始正常通话,并且为http的请求和响应提供了条件.
为什么要进行四次挥手?