美文网首页
当在浏览器输入一个网址后,实际会发生什么?

当在浏览器输入一个网址后,实际会发生什么?

作者: 波鲁克卢梭 | 来源:发表于2018-10-10 17:12 被阅读0次

    那么,输入网址后,实际发生了什么呢?过程如下:

    1、输入网址。

    2、浏览器查找域名的IP地址。

    导航的第一步是通过访问的域名找出其IP地址。DNS查找过程如下:

    浏览器缓存 – 浏览器会缓存DNS记录一段时间。 有趣的是,操作系统没有告诉浏览器储存DNS记录的时间,这样不同浏览器会储存个自固定的一个时间(2分钟到30分钟不等)。

    系统缓存 – 如果在浏览器缓存里没有找到需要的记录,浏览器会做一个系统调用(windows里是gethostbyname)。这样便可获得系统缓存中的记录。

    路由器缓存 – 接着,前面的查询请求发向路由器,它一般会有自己的DNS缓存。

    ISP DNS 缓存 – 接下来要check的就是ISP缓存DNS的服务器。在这一般都能找到相应的缓存记录。

    3. 浏览器给web服务器发送一个HTTP请求

    4. 网站服务的永久重定向响应

    服务器给浏览器响应一个301永久重定向响应,为什么服务器一定要重定向而不是直接发会用户想看的网页内容呢?其中一个原因跟搜索引擎排名有关。如果一个页面有两个地址,就像http://www.igoro.com/

    http://igoro.com/,搜索引擎会认为它们是两个网站,结果造成每一个的搜索链接都减少从而降低排名。而搜索引擎知道301永久重定向是什么意思,这样就会把访问带www的和不带www的地址归到同一个网站排名下。还有一个是用不同的地址会造成缓存友好性变差。当一个页面有好几个名字时,它可能会在缓存里出现好几次。

    5. 浏览器跟踪重定向地址

      现在,浏览器知道了要访问的正确地址,所以它会发送另一个获取请求。请求头部一般包括:

      Accept

      Accept-language

      Accept-Encoding

      Connection

      User-Agent

      Cookie

      Host

    6. 服务器“处理”请求

    服务器接收到获取请求,然后处理并返回一个响应。

    7. 服务器发回一个HTML响应

    8. 浏览器开始显示HTML

    9. 浏览器发送请求,以获取嵌入在HTML中的对象

    在浏览器显示HTML时,它会注意到需要获取其他地址内容的标签。这时,浏览器会发送一个获取请求来重新获得这些文件。这些文件就包括CSS/JS/图片等资源,这些资源的地址都要经历一个和HTML读取类似的过程。所以浏览器会在DNS中查找这些域名,发送请求,重定向等等…

    10. 浏览器发送异步(AJAX)请求

    当在浏览器输入一个网址后,实际会发生什么?

    相关文章

      网友评论

          本文标题:当在浏览器输入一个网址后,实际会发生什么?

          本文链接:https://www.haomeiwen.com/subject/nocpaftx.html