0.前言
”从输入网址到看到网页中间经历了什么?“是一个常见面试题,这个问题贯穿了整个网络系统,对回答者的网络综合素质要求较高。本文中对此问题的大致流程进行较细致的阐述,但篇幅有限,其中仍有一些细节性的知识需要读者自行查阅。
1.流程
1.1 解析URL并组装HTTP请求
1.1.1 浏览器端
用户最开始是在浏览器输入网址,所以第一步,就需要浏览器对输入的URL地址进行解析,从URL地址中,组装成一个HTTP请求。如输入 www.baidu.com
就会生成一个对www.baidu.com的get请求。具体的HTTP请求信息细节可查阅其他资料。
1.1.2 DNS解析域名
从URL地址中解析出域名后,还需要通过DNS对域名进行解析,即查询域名所对应的IP地址。DNS是一种服务,其有很多个层级排列的服务器,类似与一个树状结构,如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4bmpNMRk-1667130070904)(C:\Users\Acer\AppData\Roaming\Typora\typora-user-images\image-20221028162035511.png)]
每个域名服务器中,都保存有大量的域名与IP地址的映射。接下来拿 WWW.baidu.com
举例,对DNS域名解析流程进行阐述:
-
浏览器首先会查询本地缓存中是否有地址映射,如