客户端和服务器端交互模型
当我们在浏览器中输入一个地址,到最后看到页面,中间都经历了哪些事情?
假设我们访问的是https://fanguvw.xyz 这个地址,当我们摁下Enter键,我们可以看到博客首页:
- 博客首页并没有在我们客户端本地,我们输入地址后才请求过来
- 输入不同的域名可以看到不同的页面
- 有的网址是https,有的是http(或者还有ftp)
- 需要客户端联网才能完成这些事情
那期间究竟经历了哪些事呢?以下进行简单概述
[Request请求阶段]
- 首先根据客户端输入的
域名
,到DNS服务器上进行反解析
(通过域名找到对应服务器的外网IP) - 通过找到的外网IP,找到对应的服务器
- 通过在地址中输入的
端口号
(没输入是因为不同协议有自己默认的端口号)找到服务器上发布的对应项目
[Response响应阶段]
- 服务器获取到请求的资源文件的地址
例如:/stu/index.html
,把资源文件中的源代码
找到 - 服务器会把找到的源代码返回给客户端(通过HTTP等传输协议返回)
[浏览器自主渲染]
- 客户端接收到源代码后交给浏览器的内核(渲染引擎)进行渲染,最后又浏览器绘制出对应的页面