每日面试题(4)

在浏览器中输入网址并回车后都发生了什么?

目录

在浏览器中输入网址并回车后都发生了什么?

1 url概念浅析

2 第一次访问一个网址

3 第二次访问网址

4 TCP三次握手浅析(通俗)

5 为什么要三次握手?

6 为什么要四次挥手?

7 html在浏览器中如何渲染?


1 url概念浅析

例如输入:https://www.baidu.com

  • url : 统一资源定位符 ,俗称网址
  • HTTPS: 传输协议(http和Tcp之间加了一层TSL或者SSL的安全层)
  • www : 万维网
  • baidu.com : 域名

2 第一次访问一个网址

  1. 解析url,在DNS域名系统匹配到真实IP
  2. 拿到真实IP后,建立连接,进行TCP三次握手
  3. 拿到数据,渲染页面
  4. 四次挥手,断掉连接

3 第二次访问网址

第一次访问会将域名解析的IP地址存在本地,所以第二次访问浏览器的缓存,如果没有过期就直接访问了

4 TCP三次握手浅析(通俗)

  1. 第一次握手:客户端向服务端发送SYN报文,发起链接请求。
  • 此时,客户端知道自己发送能力OK
  • 服务端知道自己接收能力OK,客户端发送OK。

2. 第二次握手:服务端返回SYN报文给客户端确认和响应。

  • 此时,客户端知道自己收发OK,客户端收发OK。
  • 服务端知道自己收发OK,客户端发送OK。

3. 第三次握手:客户端收到服务端的报文,并发送一个ACK报文给服务器确认。

  • 此时,客户端知道自己收发OK,客户端收发OK。
  • 服务端知道自己收发OK,客户端收发OK。

5 为什么要三次握手?

1.谢希仁的《计算机网络》:“为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误”。
2.在另一部经典的《计算机网络》一书中讲“三次握手”的目的是为了解决“网络中存在延迟的重复分组”的问题。
3.“信道不可靠”,但是通信双方需要就某个问题达成一致,而要解决这个问题,三次通信是理论上最小值,为了满足“在不可靠信道上可靠的传输信息”这一需求,即“信道不可靠,数据传输要可靠”

6 为什么要四次挥手?

因为握手并无数据传输,服务端收到客户端的SYN连接请求报文时,可以直接发送SYN+ACK报文,ACK用来应答,SYN用来同步。但是,挥手时存在数据传输,ACK和FIN报文不能同时发送,当服务端收到客户端的FIN报文后,很可能不会立即断开连接,只能先回复一个ACK报文,告知客户端“你的FIN报文我收到了,再等一会儿,我数据没有传输完”,然后等服务端数据传输结束,再发送FIN报文。因此,四次挥手。

7 html在浏览器中如何渲染?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值