请问浏览器访问www.baidu.com经历了怎样的过程?

1.查找浏览器缓存

  首先会查找浏览器缓存,浏览器会保存一段时间你之前访问过的网址的DNS信息,不同的浏览器保存的时长不等。

2.查找系统缓存

  如果上面的步骤没有找到对应的DNS信息,这个时候浏览器会尝试调用系统缓存来继续查找这个网址对应的DNS信息。

3.查找路由器缓存

  如果还是没有找到对应的IP,那么浏览器会接着发送一个请求到路由器上,然后路由器在自己的路由器缓存查找相关记录,一般路由器也存有DNS信息。

4.请求ISP DNS服务器

  如果还是没有找到,那么这个请求会被发送到ISP(Internet Service Provider,即互联网服务提供商)。ISP针对DNS服务器做了修改,使得用户的浏览器自动访问到ISP已经设定好的页面上,这就是DNS污染和Http劫持,用户可以自行修改DNS来防止DNS被ISP污染,至于Http劫持,由于Http是明文通信,ISP拦截用户浏览器请求之后的Response,强行插入广告或302重定向响应来添加推广链接。用户使用Https

5.请求根域名服务器

  如果在ISP的DNS服务器上还是没有找到,那么你的请求会被发向根域名服务器,根域名服务器是面向全球的顶级DNS服务器,共有A-->M13台逻辑服务器。真正的实体服务器大概有几百台,分布于全球各大洲,这些服务器拥有真正完整的DNS数据库。如果在这里还是找不到,说明了一个问题,这个域名根本不存在,或者该域名由于欠费,已经被回收了。

  这也就是为什么打开一个新的页面,会有点慢的原因了。因为本地没什么缓存,需要这样一级一级的递归查询,知道DNS被解析。

  域名结构:三级域名.二级域名.一级域名

6.解析过程

  浏览器得到经过一系列的DNS查找之后,得到了IP。浏览器给这个IP的服务器发送了一个http请求,方式为get,这个get请求包含host、user-agent、Connection、Cookies等等

  发送完请求之后,等待响应。

  web服务器接收到浏览器的请求之后,开始读请求头,生成响应头和具体响应内容,响应头里有一个Status code,200、302、404等等。浏览器开始读取响应头,然后开始解析响应并开始显示页面。

  如果该页面是个静态页面,基本上到这一步也就结束了,但是如果是个动态页面,在主页的框架在浏览器上加载完之后,需要继续向web服务器请求其所包含的资源,图片、视频、css样式等等。

  通常来说,对于静态页面内容,浏览器通常会进行缓存。而对于动态的页面内容来说,浏览器不会缓存,缓存的内容通常也不会保存很久,因为难保网站页面不做改动。

原文地址:https://www.cnblogs.com/dcfwow/p/10675978.html

时间: 2024-08-11 14:52:19

请问浏览器访问www.baidu.com经历了怎样的过程?的相关文章

通过浏览器访问一个网站的背后到底经历了什

通过浏览器访问一个网站的背后到底经历了什么 HTTP-Principle-01 前言 来吧,随我一起来整理下HTTP与DNS协议吧,无论你是Dev or Ops这些都是你必须要知道的基础网络知识,如上图所示,我们把用户访问网站的流程大概分为了两大部分: DNS(用于解析域名的IP地址) HTTP(得到IP地址之后从服务器获取数据) 基于上面的两个点,就让我么来深刻的讨论下到底什么是DNS and HTTP把. What is DNS? 域名系统(Domain Name System,缩写:DNS

浏览器访问一个网站的背后到底经历了什么?

如题,通过浏览器访问一个网站的背后到底经历了什么? 内容来自:https://www.cnblogs.com/yangliheng/p/6112955.html 前言 来吧,随我一起来整理下HTTP与DNS协议吧,无论你是Dev or Ops这些都是你必须要知道的基础网络知识,如上图所示,我们把用户访问网站的流程大概分为了两大部分: DNS(用于解析域名的IP地址) HTTP(得到IP地址之后从服务器获取数据) 基于上面的两个点,就让我么来深刻的讨论下到底什么是DNS and HTTP把. Wh

[转]用chrome模拟微信浏览器访问需要OAuth2.0网页授权的页面

FROM : http://blog.csdn.net/gavin_luo/article/details/40620217 现在很流行微信网页小游戏,用html5制作的小游戏移过来,可以放到微信浏览器中打开,关键是可以做成微信分享朋友圈的形式,大大提高游戏的传播,增强好友的游戏互动. 微信浏览器中打开网页游戏效果还不错,对手机要求不高,而且微信网页游戏不用考虑手机兼容性问题,采用html5,而且大部分手机浏览器,特别是微信浏览器对html5的支持很高. 怎么把别人的微信网页游戏移植到自己的网站

浏览器访问网页过程中发生了什么?

在浏览器输入:http://www.baidu.com/,最后,浏览器呈现出相应网页,这个过程究竟发生了什么? 第一步,解析域名,找到主机IP (1)浏览器会缓存DNS一段时间,一般2-30分钟不等.如果有缓存,直接返回IP,否则下一步. (2)缓存中无法找到IP,浏览器会进行一个系统调用,查询hosts文件.如果找到,直接返回IP,否则下一步.(在计算机本地目录etc下有一个hosts文件,hosts文件中保存有域名与IP的对应解析,通常也可以修改hosts科学上网或破解软件.) (3)进行了

浏览器访问网页过程中发生了什么?(转)

在浏览器输入:http://www.baidu.com/,最后,浏览器呈现出相应网页,这个过程究竟发生了什么? 第一步,解析域名,找到主机IP (1)浏览器会缓存DNS一段时间,一般2-30分钟不等.如果有缓存,直接返回IP,否则下一步. (2)缓存中无法找到IP,浏览器会进行一个系统调用,查询hosts文件.如果找到,直接返回IP,否则下一步.(在计算机本地目录etc下有一个hosts文件,hosts文件中保存有域名与IP的对应解析,通常也可以修改hosts科学上网或破解软件.) (3)进行了

python爬虫模拟浏览器访问-User-Agent

模拟浏览器访问-User-Agent: import urllib2 #User-Agent 模拟浏览器访问 headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36"} #通过urllib2.Request()方法构造一个请求对象 request

学习:浏览器访问网站的总流程

个人理解,有错误麻烦纠正下! 主机A打开浏览器进行访问www.baidu.com的流程如下: 第一步:主机A访问www.baidu.com,那么肯定需要知道www.baidu.com的IP地址,原来肯定是不知道的 第二步:找的优先级是先WINDOWS缓存 > HOSTS文件 > DNS服务,如果都没找到,那么就会去请求本地DNS服务器,这里自己的本地DNS服务器如下:电信 第三步:想要请求本地DNS服务器,那么就需要出网关,那么就需要先知道网关的MAC的地址,用来封装链路层用的 回复包: 第四

Linux系统安装Discuz,通过windows浏览器访问遇到的一般性问题。错误代码403、462

在Linux系统里配置完虚拟主机后 vim /usr/local/apache2/conf/httpd.conf /vhosts   #搜索 将 # include conf/extra/httpd-vhosts.conf 前面的注释符号去掉,生效 vim /usr/local/apache2/conf/extra/httpd-vhosts.conf 配置完成后. 用浏览器访问www.test.com 或者 www.aaa.com      #自定义的域名或者别名 一.如果遇到错误代码403,打

php -- php模拟浏览器访问网址

目前我所了解到的在php后台中,用php模拟浏览器访问网址的方法有两种: 第一种:file_get_contents($url) 通过php内置的 file_get_contents 函数可以模拟浏览器访问网址的行为,取的结果就是那个网址所返回的所有东西(这种情况一般用于返回的是 xml 格式字符串或者 json 字符串) 第二种:curl curl 是 php 提供的内置函数,其功能非常强大,封装常用的http,soap,ftp等协议 微信主要通过其进行模拟POST请求 1)初始化curl 2