一次网站访问的http过程

在浏览器中输入网址如www.jd.com
1 浏览器补全url http://www.jd.com:80/
2 浏览器缓存 查寻
3 本地hosts文件解析如果没有
4 系统DNS缓存如果没有
5 向本地DNS提供商缓存 UDP连接 53端口 如果没有
6 域名根服务器 迭代查寻
7 找到com管理域迭代查寻
8 jd.com管理DNS解析域名 返回给系统 各级DNS可能会缓存解析记录
9 向解析出的IP地址发起访问请求TCP三次握手
10 建立TCP连接后发起http请求
11 服务器响应http请求,浏览器得到html代码
12 如果页面有dns-prefetch(DNS预获取)此功能由html5提供 则预先获取各级域名的解析记录
13 浏览器解析html代码,并请求代码中的资源如js css 图片等
14 浏览器对页面进行渲染呈现给用户
附加参考内容
如果DNS解析过程都失败 都没能解析到目标IP
操作系统就会查找NetBIOS name Cache(NetBIOS名称缓存,就存在客户端电脑中的),那这个缓存有什么东西呢?凡是最近一段时间内和我成功通讯的计算机名和Ip地址,就都会存在这个缓存里面。什么情况下该步能解析成功呢?就是该名称正好是几分钟前和我成功通信过,那么这一步就可以成功解析。
如果第⑤步也没有成功,那会查询WINS 服务器(是NETBIOS名称和IP地址对应的服务器)
如果第⑥步也没有查询成功,那么客户端就要进行广播查找
如果第⑦步也没有成功,那么客户端就读取LMHOSTS文件(和HOSTS文件同一个目录下,写法也一样)
如果第8步还没有解析成功,那么就宣告这次解析失败,那就无法跟目标计算机进行通信。只要这8步中有一步可以解析成功,那就可以成功和目标计算机进行通信。

猜你喜欢

转载自blog.csdn.net/bjgaocp/article/details/88750656