秋招高频面试题---在浏览器地址栏输入一个URL后回车,背后会进行哪些技术步骤?

在浏览器地址栏输入一个URL后回车,背后会进行哪些技术步骤?比如zhihu.com

解析:

  • 第一步应该是浏览器对用户输入的网址做初步的格式化检查,只有格式通过才会进入下一步。
    那么浏览器使用的是http还是https访问服务器呢?
    浏览器默认使用http协议,除非可以加上https,所以浏览器先进行URL补齐。
    浏览器请求本地DNS服务发出请求查询zhihu.com的IP地址,DNS则先查看自己的DNS 缓存,如没有,再查看本地硬盘里的host文件,也没有!
    于是,主机DNS模块充当DNS客户向本地域名服务器发出查询请求,传输DNS报文使用的是UDP协议。UDP在报头加上源端口号和目的端口号等信息将其封装成UDP数据报,然后传递给IP协议单元,IP将该数据封装成IP数据报,其目的地址为本地DNS服务器的IP地址。查看路由表,如果要出网关得到网关的IP,向数据链路层交付。发送时在ARP缓存中查看其对应的MAC地址,如果没有就发送ARP广播,网关收到广播后回应,于是将IP地址与网关的MAC地址对应写入ARP缓存表,之后以数据帧的形式进行转发。
    经过几次转发之后,本地域名服务器收到数据帧后,逐层向上交付,给目的端口为53的DNS服务,于是DNS服务程序将其回复。
    如果本地DNS服务没有其IP地址的话,本地域名服务器就以DNS客户的身份去查询根域名服务器,根域名服务器向其回应域名对应的IP或下一次查询的顶级域名服务器的IP地址。
    以这样迭代查询的方式,终于得到域名所对应的IP地址,就立马回应给本地主机。
  • 第二步:与目的主机进行TCP连接(进行三次握手)。
  • 第三步:建立连接之后,则发送http请求,然后接收请求数据
    主要过程如下:
    建立连接之后,浏览器生成HTTP GET报文,并交付给HTTP服务器
    HTTP服务器从TCP套接字读取HTTP报文,生成一个HTTP的响应报文,将Web页面内容放入报文主体中,发回主机。
    浏览器收到HTTP响应报文之后,抽取出Web页面的内容。之后进行渲染,显示Web页面。
  • 第四步:与目的主机断开TCP连接。

两种域名查询图解:
在这里插入图片描述

问题:如果说使用的不是http而是https的话呢

如果是https的话,在TCP三次握手成功之后,不是直接交给TCP发送,而是使用SSL进行加密,使传输过程中的内容不被篡改、替换。
过程如下:
(1)客户使用https的URL访问Web服务器,要求与Web服务器建立SSL连接。客户端发送自己的版本号,还有自己支持的算法到服务器端。
(2)Web服务器收到客户请求之后,将自己的版本号,所支持的算法,还有网站的证书信息(证书中包含公钥)传送一份给客户端。
(3)客户端开始匹配对方的版本号以及算法,然后利用证书里的公钥去解密证书的数字签名,解开了则说明证书有效。然后生成一个随机的明文字符串,用网站的公钥加密,传送给服务器。
(4)Web服务器利用自己的私钥解密得到这个明文字符串,然后利用它生成会话密钥然后发送给客户端。
(5)之后双方通过会话密钥进行加密通信,传输到后,https服务返回URL主页的内容,并最终到达浏览器。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值