跳到主要内容

网页是怎么打开的

先来看一个经典的面试题:从输入 URL 到打开网页,发生了什么?越详细越好。

本文将围绕这个问题展开,详细讲述 DNS、Server 以及浏览器的渲染原理。

DNS

输入网址后(你甚至可能还没有点回车),浏览器会先从本地缓存中搜索解析结果。

如果有自然皆大欢喜;如果没有,浏览器就会向 DNS 发送请求。通常,我们使用的是谷歌家的8.8.8.8. DNS会把域名解析后的结果返回客户端。

这个解析结果可能是一个IP地址,也可能是指向另一个域名,甚至可能是一段文本。

解析类型作用
A指向IP地址
CNAME指向另一个域名
TXT返回一串文本

如果返回了IP地址,浏览器就会向该ip地址发出请求,于是就到了我们要谈的http。

地址栏前面的小锁

如何理解Https的工作原理?我们可以用信鸽送信的故事来理解。

小明和小红想用信鸽传一封信。

小明把内容写在纸上,再绑在信鸽脚上,让信鸽带给小红。这就是Http。

如果有中间人拦下了信鸽,就可以自由篡改内容,而小红丝毫不知道被篡改了。

如何保护信息安全呢?

小明把信装进一个盒子里,并给他加上锁。小红收到信箱后,将私钥转成公钥,对比信箱上的公钥,如果一致,就可以

于是小红小明约定了一个密钥,使用密文传输信息。这样虽然可以防止被篡改,但是不能防止被中间人拦截。

所以如何安全的传输信息呢?

如果引入第三方平台,给小明颁发一个凭证,这样只要

渲染管线

我们知道 html 中引入css和js的顺序是有最佳实践的,那么是什么产生了这种引入顺序呢?

边缘网络

这是未来云服务的趋势。传统的云服务跑在一个数据中心的几台或者一台服务器上,而通过边缘网络,用户的请求会被自动发送到离他最近的边缘服务器,从此大大提高了访问速度。