当你在浏览器输入baidu.com并敲下回车发生了什么

当你在浏览器输入baidu.com并敲下回车发生了什么?

  • 当我们在浏览器输入一个网站的时候,浏览器会先去查缓存数据,缓存是什么?比如你访问了百度,然后浏览器把百度的网页缓存到了硬盘或者内存中,第二次访问的时候,如果有缓存数据,浏览器会直接从缓存中提取网页数据展示给用户。最普遍的例子就是登陆,很多网站都有这样一个功能,输入密码登陆一个网站后,第二次不需要输入密码就能进入实际上也是依靠缓存。

  • 如果电脑上没有缓存,或者缓存不是最新的,那么浏览器就会去查找本机hosts文件(系统文件),里面记载了网址和ip地址的对应关系,这个文件的作用就是,告诉浏览器指定的网址到对应的ip去请求,举个简单的例子,在这个文件里,把京东的域名映射到百度的服务器ip上,你访问京东网站,你会发现打开的是百度。浏览器把你的请求地址和hosts文件的配置做对比,如果有映射关系就直接访问对IP发起请求。

  • 如果既没有缓存也没有域名映射关系,这个时候就要去域名解析系统,也就是所谓的DNS。简单的说,DNS你可以理解为类似于hosts的文件,作用就是把对应的域名解析到指定的服务器,只不过hosts文件是电脑本身的,而DNS则是面向整个互联网,里面记载了大量的域名和ip的映射关系。

  • 通过DNS浏览器拿到域名对应的IP地址,这个时候,浏览器就去对应IP地址按照特定的方式请求数据,举个例子,这个时候浏览器拿到了百度的服务器IP,就会给百度的服务器发起请求,按照http协议,经历了3次“握手”,然后百度的服务器会返回给当前浏览器一堆数据,一般来说,返回的数据都是html、css或者js之类的代码,浏览器拿到这个代码文件(html、css、js),然后按照特定的算法去解析这些代码,最终渲染成我们所看到的网页。你如果想查看返回的数据,即在浏览器里面按F12,你看到的东西就是对应IP服务器返回的数据。

从这一步我们可以看出,其实我们直接用IP地址访问,会比用域名访问更快,毕竟直接用IP访问浏览器不会走DNS,相当于少一步流程,但为什么我们要用域名?很简单,就拿百度来说,百度的域名很简单,非常方便人记忆,而IP地址则是一串数字,非常不方便记忆。
以上这些就是大致过程,真正的流程会比这复杂,比如百DNS域名解析也是一个很复杂的过程,百度有CDN的话,请求会走CDN去拿网页数据等等。

若有错误 欢迎指正 😃

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值