? ? ? ? DNS
? ? ? ? DNS的作用就是通过域名查询到具体的IP。因为IP地址不利于人们记忆就出现了域名。通过DNS查询可以找到域名对应的IP地址。找到IP地址之后就会请求连接,参考TCP三次握手。
? ? ? ? 举个经典的例子,当你想在浏览器中访问www.google.com,会有以下的过程:
? ? ? ? 以下DNS迭代查询,由客户端做请求
? ? ? ? 1、首先在本地缓存中查询IP(先看自己有没有)
? ? ? ? 2、没有的话就去系统配置的DNS服务器中查询(自己没有找帮手)
? ? ? ? 3、如果还是没有,就直接去DNS根服务器查询,此次查询会找出负责com这个一级域名的服务器
? ? ? ? 4.然后去该服务器查询google这个二级域名
? ? ? ? 5、接下来查找三级域名www
?
? ? ? ? 找到IP地址后就进行TCP握手,应用层下发数据给传输层。TCP协议会指明两端的端口,然后下发给网络层。网络层中的IP协议会确定IP地址,并且指示了数据传输中如何跳转路由器。然后包会再次被封装到数据链储层的数据帧结构中,最后就是物理层面的传输。
?
? ? ? ? 在这一部分中,可以展开说说的有:
????????浏览器缓存相关的知识。
? ? ? ? TCP建立连接的三次握手、TCP的特性(快重传...)以及TCP断开链接的四次挥手,再对比展开说说UDP。
? ? ? ? 当TCP握手结束后会进行TLS握手,然后就开始正式的传输数据。这里可以展开TLS的握手情况以及两种加密方式的内容(对称,非对称)
? ? ? ? 数据在进入服务端之前,可能还会先经过负责负载均衡的服务器。它的作用是将请求合理的分发到多台服务器上,这时假设请求响应成功,服务端会响应一个HTML文件。
? ? ? ? 首先浏览区会判断状态码是什么。如果是200那就继续解析,如果400或500之类就会报错,如果300的话会进行重定向,如果有过多的重定向也会报错。
? ? ? ? 浏览器接收文件后会开始解析文件,如果是gzip格式的话会先解压一下,然后通过文件的编码格式知道该如何去解码文件。
? ? ? ? 文件解码成功之后,就会开始浏览器的渲染过程浅谈浏览器渲染页面的流程
部分内容参考于掘金《前端面试之道》
|