如我们需要访问www.imooc.com地址,过程如下
1. 浏览器(如Chrome)搜索自身的DNS 缓存
2. 搜索操作系统自身的DNS缓存(浏览器没有找到缓存或缓存已经失效)
3. 读取本地的 HOST 文件
4. 浏览器 发起一个DNS 的 一个系统调用
1、宽带运营商服务器查看本身缓存
2、运营商服务器发起一个迭代DNS解析的请求
运营商服务器吧结果返回操作系统内核同时缓存起来;
操作系统内核把结果返回浏览器;
最终浏览器拿到了被访问网址(www.imooc.com)对应的IP地址。
5. 浏览器获得域名对应的 IP 地址后,发起 HTTP 的“三次握手”(你先告诉服务器你要给服务器发东西(SYN),服务器应答你并告诉你它也要给你发东西(SYN、ACK),然后你应答服务器(ACK),总共来回了3次,称为3次握手。)
6. TCP/IP 连接建立起来后,浏览器就可以向服务器发送 HTTP 请求了,例如使用 HTTP 的 GET 方法请求一个根域里的一个域名,协议可以采用 HTTP 1.0 的一个协议。
7. 服务器端接收到了这个请求,根据路径参数,竞购后端的一些处理后,把处理的一个结果的数据返回给浏览器,如果是 目标网 的页面就会把完整的 HTML 页面代码返回给浏览器。
8. 浏览器拿到了 目标网 的完整的HTML 页面代码,在解析和渲染这个页面的时候,里面的 JS 、CSS、 图片静态资源,他们同样也是一个个 HTTP 请求,都需要上面的主要七个步骤
9. 浏览器根据拿到的资源对页面进行渲染,最终把一个完整的页面呈现给用户
内容来自:
https://www.imooc.com/video/6712