zoukankan      html  css  js  c++  java
  • 浏览器输入网址后的事情~

    • 浏览器查找域名的IP地址

    一条域名的DNS记录会在本地有两种缓存:浏览器缓存和操作系统(OS)缓存。

    在浏览器中访问的时候,

    1、会优先访问浏览器缓存,查看缓存中有没有相关类名以及缓存的ip地址(这个缓存的时间大概只有一分钟)。如果有缓存,会查看缓存是否过期。

      如何查看浏览器的缓存,以chrome为例:在网址处输入 chrome://net-internals/#dns (具体内容我也没细看,,)

    2、如果浏览器没有缓存或者缓存已经失效,则访问OS缓存(即操作系统自身的DNS缓存),

    3、如果还没有找到,会尝试读取本地的HOST文件,

    4、如果在HOST文件中也没有找到,浏览器会发起一个DNS的系统调用,访问DNS服务器,一般是ISP(宽带运营商提供),宽带运营商服务器查找自身的缓存,查看有无过期。

      如果未找到或过期,运营商服务器会发起一个迭代DNS解析的请求(首先找根域的DNS的IP地址,比如说找https://www.cnblogs.com/的ip地址,就会先找到com域的顶级域的ip地址,然后再找到cnblogs.com的ip地址,然后返回并缓存)。

      运营商服务器把结果返回操作系统内核同时缓存起来,操作系统内核把结果返回给浏览器,最终浏览器拿到了域名对应的ip地址。

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

    5、浏览器获得域名对应的ip地址后,发起HTTP“三次握手

      浏览器以一个随机的端口向服务器的web程序发起TCP连接请求,连接请求通过层层路由设备到达服务器网卡,然后进入到内核的TCP/IP协议栈,还有可能经过防火墙的过滤,最终到了web服务端,建立起TCP/IP连接。

    6、TCP/IP连接建立起来后,浏览器就可以向服务器发送HTTP请求。比如用HTTP的GET方法请求一个根域里的一个域名。

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

    服务器给浏览器响应一个301永久重定向响应。为什么服务器一定要重定向而不是直接发用户想看的网页内容?其中一个原因与搜索引擎排名有关。如果一个页面有两个地址,搜索引擎会认为它们是两个网站,结果造成每一个搜索链接都减少从而排名降低。但搜索引擎知道301永久重定向的意思,这样会把访问地址归到同一个网站排名下。用不同的地址会造成缓存友好性变差,当一个页面有好几个网址时,可能会在缓存里出现好几次。

    • 浏览器跟踪重定向地址

    现在浏览器知道了要访问的正确地址,会发送另一个获取请求

    • 服务器处理请求

    7、服务器端接收到这个请求,根据路径参数,经过后端的一些处理之后,把处理后的一个结果的数据返回给浏览器。比如是博客园的网页,就会把完整的HTML页面代码返回给浏览器。

    • 浏览器开始显示HTML

    8、浏览器拿到完整的HTML页面代码,在解析和渲染这个页面的时候,里面的JS、CSS、图片静态资源,同样也是一个个HTTP请求,都需要经过上面的步骤

    9、浏览器根据拿到的资源对页面进行渲染,最终把一个完整的页面呈现给用户。

        

  • 相关阅读:
    BZOJ 1040 (ZJOI 2008) 骑士
    BZOJ 1037 (ZJOI 2008) 生日聚会
    ZJOI 2006 物流运输 bzoj1003
    ZJOI 2006 物流运输 bzoj1003
    NOI2001 炮兵阵地 洛谷2704
    NOI2001 炮兵阵地 洛谷2704
    JLOI 2013 卡牌游戏 bzoj3191
    JLOI 2013 卡牌游戏 bzoj3191
    Noip 2012 day2t1 同余方程
    bzoj 1191 [HNOI2006]超级英雄Hero——二分图匹配
  • 原文地址:https://www.cnblogs.com/lianglanlan/p/8058611.html
Copyright © 2011-2022 走看看