用大白话讲述三次握手和四次挥手

简单的举个栗子:

当我们需要打开京东的官网时, 从打开到最后呈现; 会经过五个步骤:

  1. DNS解析
  2. TCP连接三次握手
  3. HTTP请求
  4. 服务器响应之后, 渲染引擎开始渲染页面
  5. TCP四次挥手

DNS解析:

什么是DNS?

        DNS就是一个将域名和ip地址互相映射的分布式数据库, 简答的理解就是将域名解析成ip地址的东西.

为什么需要DNS解析?

        因为我们访问外网的时候, 它是不识别域名的; 只会识别ip地址. 例如: 查询百度

 

 

         其实这两个是一个东西, 可以理解为ip就是网络身份证; 而DNS就是网络姓名, 一个安全一个比较不安全而已.

TCP连接三次握手:

什么是TCP?
        原名传输控制协议, 它是面向连接的, 安全的, 可靠的, 基于更底层的传输层通讯协议. 简单的来说就是一种传输控制协议.

TCP的作用是什么?

        保证HTTP网络传输是否安全, 可靠. 简单的理解就是查看通讯双方的硬件是否能正常工作, 能不能发送请求例如:

        我给你打电话, 并不是我通电话的按钮按下去就可以立即和你说话; 而是在这之间有一段响彩铃的时间. 这个事件就是在检测你手机是否有话费? 是否有电等等, 并且对方也有这么一段时间.

哪三次握手?

        (1) 客户端给服务器发送请求, 检测客户端的网卡是否正常  (发送成功, 说明客户端发送网口正常)  [第一次握手]

        (2) 服务器接收请求, 并回复; 检测客户端的网卡是否正常  (接收回复成功, 说明服务器接收和发送网口正常)  [第二次握手]

        (3) 客户端收到回复, 再次向服务器回复  (接收成功, 说明客户端接收网口正常)  [第三次握手]

HTTP请求:

        客户端发送请求报文 +  服务器处理请求 + 服务器发送响应报文

请求报文分为什么?

        请求行(请求方式method和请求地址url) + 请求头(content-type) + 请求体(通常是post请求中的参数)

响应报文分为什么?

        响应行(服务器ip和响应状态码(code)) + 响应头(content-type) + 响应体(服务器返回的数据)

页面渲染:

        (1) 页面渲染的第一步是渲染盒子模型

        (2) 渲染样式(颜色, 文本, 图片等等)

TCP四次挥手:

哪四次挥手?

        (1) 客户端请求断开连接  [第一次挥手]  (服务器收到请求, 即将第二次挥手)

        (2) 至此客户端到服务器的连接已断开. 但是存在服务器还有部分数据没有发完的情况, 当服务器将全部数据发完之后, 向客户端发送断开连接请求  [第二次挥手]  (客户端收到请求, 即将第三次挥手)

        (3) 客户端收到服务器发送来的断开连接请求, 并回复服务器消息已收到  [第三次挥手]  (服务器收到请求, 即将第四次挥手)

        (4) 服务器表示已收到客户端发送的请求 [第四次挥手]

至此客户端到服务器的连接关闭, 服务器到客户端的连接也正式关闭; 四次挥手保证了通讯双方正确的结束连接.

 

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值