8.前端计网篇之在一个浏览器中输入一个网址并且按下回车之后会发生什么?

在一个浏览器中输入一个网址并且按下回车之后会发生什么?

  1. 解析URL:首先会对URL进行解析,分析所需要使用的传输协议和请求的资源的路径。如果输入的URL中的协议或者主机名不合法,将会把地址栏中输入的内容传递给搜索引擎。如果没有问题,浏览器会检查URL中是否出现了非法字符,如果存在非法字符,则对非法字符进行转义后再进行下一步。
  2. 缓存判断:浏览器会判断所请求的资源是否在缓存里,如果请求的资源在缓存里并且没有失效,那么就直接使用,否则向服务器发起新的请求。
  3. DNS解析:下一步首先需要获取的谁输入的URL中的域名的IP地址,首先会判断本地是否有该域名的IP地址的缓存,如果有则使用,如果没有则向本地DNS服务器发起请求。本地DNS服务器也会先检查是否存在缓存,如果没有就会先像根域名服务器发起请求,获得负责的顶级域名服务器的地址后,再向顶级域名服务器请求,然后获得负责的权威域名服务器的地址后,再向顶级域名服务器请求,然后获得负责的权威域名服务器的地址后,再向权威域名服务器发起请求,最终获得域名的IP地址后,本地DNS服务器再将这个IP地址返回给请求的用户。用户向本地DNS服务器发起请求属于递归请求,本地DNS服务器向各级域名服务器发起请求属于迭代请求。
  4. 获取MAC地址:当浏览器得到IP地址后,数据传输还需要知道目的主机的MAC地址,因为应用层下方数据给传输层,TCP协议会先指向源端口号和目的端口号,然后下发给网络层。网络层会将本机地址作为源地址,获取的IP地址作为目的地址。然后将下发给数据链路层,数据链路层的发送需要加入通信双方的MAC地址,本机的MAC地址作为目的地址。然后将下发给数据链路层,数据链路层的发送需要加入通信双方的MAC地址,本机的MAC地址作为源MAC地址,目的MAC地址需要分情况处理。通过将IP地址与本机的子网掩码相比,可以判断是否与请求主机在同一个子网里,如果在同一个子网里,可以使用APR协议获取到目的主机的MAC地址,如果不在一个子网里,那么请求应该转发给网关,由它代为转发,因此同样可以通过ARP协议来获取网关的MAC地址,此时目的主机的MAC地址因该为网关地址。
  5. TCP三次握手TCP三次握手
  6. HTTPS握手:如果使用的是HTTPS协议,在通信前还存在TLS的一个四次握手的过程。
    1)首先由客户端向服务器端发送使用的协议的版本号一个随机数可以使用的加密方法
    2)服务器端收到后,确认加密的方法,也向客户端发送一个随机数自己的数字证书
    3)客户端收到后,首先检查数字证书是否有效,如果有效,则再生成一个随机数,并使用证书中的公钥对随机数进行加密,然后发送发送给服务器端,并且还会提供一个前面所有内容的hash值供服务器端检查。
    4)服务器端接收后,使用自己的私钥对数据进行解密,同时向客户端发送一个前面所有内容的hash值供客户端检验。这时候双方都有了三个随机数,按照之前所约定的加密方法,使用这三个随机数生成一把秘钥,以后双方通信前,就使用这个秘钥对数据进行加密后再传输。
  7. 返回数据:当页面请求发送到服务器端后,服务器端会返回一个html文件作为响应,浏览器接收到响应后,开始对html文件进行解析,开始页面的渲染过程。
  8. 页面渲染页面渲染
  9. TCP四次挥手TCP四次挥手
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值