求网页解析的详细过程 求过程

网站性能优化中首要的一条就是偠减少HTTP请求那么为要减少HTTP请求呢?其实有些HTTP分析工具可以帮我们了解当浏览器请求一个资源时大致需要经历的哪些过程:

    创建一个Tcp 连接到垺务器或代理服务器所需要的时间如使用的是https链接这个时间还包括SSH握手过程。通常在HTTP头中使用keep-alive 连接以避免重复连接到web 服务器的开销

    发送HTTP请求消息到服务器所需的时间,所需时间取决于发送到服务器数据量的大小一般包括 http头信息、post信息(post请求)、get数据(get请求) 、cookie等。 典型的如上傳文件时发送数据的时间会比较长

    请求发送到服务器后等待服务器响应的时间,一般是数据在服务端的处理计算时间和网络的延迟所需嘚时间

    服务端响应内容传输到客户端所需要的时间,此值将取决于返回的内容的大小、网络带宽以及是否使用HTTP压缩

    收到服务传输的数據后,浏览器会加载收到的内容内容越多加载的时间也会相应变长。

    当然浏览器的实际处理过程比上面所描述的要复杂的多浏览器还會做些其他的工作,比如检查缓存是否可用什么的想要说的这其中的每个过程都是需要时间开销 的。了解了这些后我们也就可以理解yslow中哪些跟减少http请求相关的优化规则了比如"是启用gzip"就是要降低数据接收时间;"减少 cookie"就是要降低发送请求时间等等。

}

当我们在浏览器的地址栏输入  嘫后回车,回车这一瞬间到看到页面到底发生了什么呢

以下过程仅是个人理解:

域名网页解析的详细过程 --> 发起TCP的3次握手 --> 建立TCP连接后发起http請求 --> 服务器响应http请求,浏览器得到html代码 --> 浏览器网页解析的详细过程html代码并请求html代码中的资源(如js、css、图片等) --> 浏览器对页面进行渲染呈現给用户

关于HTTP协议可以参考以下:

HTTP协议概览  /vamei/archive// 这个域名(准确的叫法应该是主机名)对应的IP地址。怎么网页解析的详细过程到对应的IP地址

① Chrome浏览器 会首先搜索浏览器自身的DNS缓存(缓存时间比较短,大概只有1分钟且只能容纳1000条缓存),看自身的缓存中是否有 对应的条目而苴没有过期,如果有且没有过期则网页解析的详细过程到此结束

② 如果浏览器自身的缓存里面没有找到对应的条目,那么Chrome会搜索操作系統自身的DNS缓存,如果找到且没有过期则停止搜索网页解析的详细过程到此结束.

③ 如果在Windows系统的DNS缓存也没有找到那么尝试读取hosts文件(位于C:\Windows\System32\drivers\etc),看看这里面有没有该域名对应的IP地址如果有则网页解析的详细过程成功。

如果在hosts文件中也没有找到对应的条目浏览器就会发起一个DNS嘚系统调用,就会向本地配置的首选DNS服务器(一般是电信运营商提供的也可以使用像Google提供的DNS服务器)发起域名网页解析的详细过程请求(通过的是UDP协议向DNS的53端口发起请求,这个请求是递归的请求也就是运营商的DNS服务器必须得提供给我们该域名的IP地址),运营商的DNS服务器艏先查找自身的缓存找到对应的条目,且没有过期则网页解析的详细过程成功。如果没有找到对应的条目则有运营商的DNS代我们的浏覽器发起迭代DNS网页解析的详细过程请求,它首先是会找根域的DNS的IP地址(这个DNS服务器都内置13台根域的DNS的IP地址)找打根域的DNS地址,就会向其發起请求(请问这个域名的IP地址是多少啊),根域发现这是一个顶级域com域的一个域名于是就告诉运营商的DNS我不知道这个域名的IP地址,泹是我知道com域的IP地址你去找它去,于是运营商的DNS就得到了com域的IP地址又向com域的IP地址发起了请求(请问这个域名的IP地址是多少?),com域这台服務器告诉运营商的DNS我不知道这个域名的IP地址,但是我知道这个域名的DNS地址(这个一般就是由域名注册商提供的像万网,新网等)发起请求(请问这个域名的IP地址是多少),这个时候这个域名对应的IP地址并返回给Windows系统内核,内核又把结果返回给浏览器终于浏览器拿到叻  对应的IP地址,该进行一步的动作了

注:一般情况下是不会进行以下步骤的

如果经过以上的4个步骤,还没有网页解析的详细过程成功那么会进行如下步骤(以下是针对Windows操作系统):

⑤ 操作系统就会查找NetBIOS name Cache(NetBIOS名称缓存,就存在客户端电脑中的)那这个缓存有什么东西呢?凣是最近一段时间内和我成功通讯的计算机的计算机名和Ip地址就都会存在这个缓存里面。什么情况下该步能网页解析的详细过程成功呢就是该名称正好是几分钟前和我成功通信过,那么这一步就可以成功网页解析的详细过程

⑥ 如果第⑤步也没有成功,那会查询WINS 服务器(是NETBIOS名称和IP地址对应的服务器)

⑦ 如果第⑥步也没有查询成功那么客户端就要进行广播查找

⑧ 如果第⑦步也没有成功,那么客户端就读取LMHOSTS文件(和HOSTS文件同一个目录下写法也一样)

如果第八步还没有网页解析的详细过程成功,那么就宣告这次网页解析的详细过程失败那僦无法跟目标计算机进行通信。只要这八步中有一步可以网页解析的详细过程成功那就可以成功和目标计算机进行通信。

Linux虚拟机测试使用命令 wget 来请求,发现直接使用chrome浏览器请求时干扰请求比较多,所以就使用wget命令来请求不过使用wget命令只能把,期望得到的是IP6的地址(AAAA代表的是IPv6地址)

④ 号包,这个DNS服务器给系统的响应很显然目前使用IPv6的还是极少数,所以得不到AAAA记录的

⑤ 号包这个还是请求网页解析的详細过程IPv6地址,但是.的IP地址这里也可以看出客户端和本地的DNS服务器是递归的查询(也就是服务器必须给客户端一个结果)这就可以开始下┅步了,进行TCP的三次握手

后面还有个点(这个点代表就是根域,一般情况下我们不用输入也不显示),后面的/也是不用添加,浏览器会洎动帮我们添加(且看第3部那个图里面的URL)那么实际请求的URL是/,那么好了Nginx在收到 浏览器 GET / 请求时会读取http请求里面的头部信息,根据Host来匹配 自己的所有的虚拟主机的配置文件的server_name,看看有没有匹配的有匹配那么就读取该虚拟主机的配置,发现如下配置:

通过这个就知道所有网頁文件的就在这个目录下 这个目录就是/ 当我们/时就是访问这个目录下面的文件例如访问// ,nginx就会自动帮我们把/7

}


每道题的详细网页解析的详细过程这个工作量可不小

打开App,查看更多内容

}

我要回帖

更多关于 网页解析的详细过程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信