输入网址然后发生了什么?

作者: 肆意木 | 来源:发表于2017-08-11 12:59 被阅读59次

前端面试必考题:输入网址点击回车到页面展示发生了什么?很多时候我们只是了解其中的过程很少去细细研究,today,今天,就让我仔细的剖析一下其中的细节。

1. DNS 解析

图片来自网络

当你输入网址 www.google.com 之后,小伙伴们就开始忙了:

主机:“本地呼叫域名服务器,本地呼叫域名服务器,亲,你知道www.google.com 的 IP 是多少吗?”
本地域名服务器打开 DNS 高速缓存,读取缓存发现没有:“主机主机,你别着急我帮你打听打听。”
本地域名服务器打通跟域名服务器的电话:“根兄,你知道 www.google.com. 的 IP 是多少吗?”
根域名服务器解析了网址后面的 ‘ .’ ,回答:“本哥啊,我也不知道你问问 COM 顶级域名服务器吧。”
本地域名服务器挂了电话又给 COM 顶级域名服务器打通电话:“老顶,你知道 www.google.com 的 IP 是多少吗?”
顶级域名服务器解析后回答:“不清楚,你向 google.com 打听打听。”
本地域名服务器又打通 google.com 域名服务器:“老哥,你知道www.google.com 的 IP 是多少吗?”
google.com 域名服务器自己找了找,发现是自己定义的:“小本,这你算问对人了,它的 IP 是 64.233.189.104。”
本地域名服务器挂了电话之后把这个消息高速了主机,然后又把 IP 地址存到了自己的高速缓存中。

画重点了:主机向本地域名服务器发送消息是递归查询,本地域名服务器向后面的服务器发送查询是迭代查询。

画考点了:DNS 缓存包括浏览器缓存、系统缓存、路由器缓存、IPS 服务器缓存、根域名服务器缓存、顶级域名服务器缓存、主域名服务器缓存。

2. 封装 HTTP 请求

图片来自网络

这就是简单的 HTTP 请求,包括请求行、请求报头、请求正文。

画考点:GET 与 POST 的区别。
http://www.jianshu.com/p/b1fecf6ea73d

3. TCP 连接

图片来自网络

前面第一步已经得到了一个 IP 地址在应用层,应用层通过 Socket 与传输层建立连接,应用层使用的协议:http、ftp等。
传输层利用 TCP 协议通过三次握手与服务端建立连接,然后把 TCP 包打包到网络层的 IP 包,IP进行封装到数据链路层转为数据帧结构,然后再传到物理层的利用比特流的形式进行数据传输。

画考点:三次握手,四次挥手的过程、五层结构以及各层的协议。

4.服务器永久重定向响应

图片来自网络

前面呢我们已经给服务端发送了数据,这个时候为什么服务端不是直接把返回请求而是要返回301永久重定向呢?
答:如果一个页面有两个地址,就像http://www.yy.com/http://yy.com/,搜索引擎会认为它们是两个网站,结果造成每个搜索链接都减少从而降低排名。而搜索引擎知道301永久重定向是什么意思,这样就会把访问带www的和不带www的地址归到同一个网站排名下。还有就是用不同的地址会造成缓存友好性变差,当一个页面有好几个名字时,它可能会在缓存里出现好几次。

画重点:1. 重定向原因:网站调整、网页被移到一个新地址、王网页扩展名改变
画考点:301和302的区别。

5. 浏览器跟踪重定向地址

图片来自网络

重复第三步,客户端再次发送一个 HTTP 请求。

6. 服务器处理请求

服务起从在固定的端口接收到TCP报文开始,会对TCP连接进行处理,对HTTP协议进行解析,并按照报文格式进一步封装成HTTP Request对象,供上层使用。

7. 服务器返回一个 HTTP 响应

图片来自网络

经过前面的步骤,服务器返回一个响应,里面也包括状态行、响应头、响应正文。

画考点:常用的状态码

8. 浏览器显示 HTML

图片来自网络

在浏览器没有完整接受全部HTML文档时,它就已经开始显示这个页面了,过程:
a. HTML 显示 dom 树;
b. CSS 转成 CSSOM;
c. 构建渲染树;
d. 生成布局;
e. 绘制渲染树;

画考点:重排与重绘

9. 浏览器发送获取嵌入在 HTML 中的资源

悄悄.jpg

浏览器会发送一个获取请求来重新获得这些文件。比如要获取外图片,CSS,JS文件等

画考点:雅虎的35条前端优化。

相关文章

  • 输入网址然后发生了什么?

    前端面试必考题:输入网址点击回车到页面展示发生了什么?很多时候我们只是了解其中的过程很少去细细研究,today,今...

  • 前端必会的http基础

    一、输入一个网址后都发生了什么 输入网址并回车,浏览器检查网络是否连通2、解析域名(访问DNS服务器)3、浏览器发...

  • 输入网址发生了什么

    自己头脑中的记忆 输入网址 利用DNS查询,得到ip 发送请求资源数据,请求报文 TCP协议三次握手 传输 返回数...

  • 从输入网址到渲染

    1. Part 1.1.当你在浏览输 www.zuimeia.com然后都发生了什么? 输入网址 服务器ip 看到...

  • 输入网址后发生了什么

    用户打开浏览器,输入 baidu.com,页面展示百度首页。整个过程发生了什么 总述 1、输入网址。2、浏览器查找...

  • 输入网址之后发生了什么

    1.首先是输入网址 以www.facebook.com为例 2.浏览器查找域名对应IP 2.1 DNS查找过程: ...

  • 理论知识总结

    标签(空格分隔): 面试准备 [TOC] 1、讲讲输入完网址按下回车,到看到网页这个过程中发生了什么 域名解析 发...

  • 当你输入谷歌网址按回车后,发生了什么?

    当你访问谷歌网址的时候,整个过程发生了什么? 当你在 Chrome 浏览器输入谷歌的网址,https://goog...

  • 从URL输入到页面展现时发生了什么

    从我们输入一个网址(比如:www.baidu.com)时,到底发生了什么?为什么从这个网址我们就能打开相应的网页?...

  • 输入网址后到底发生了什么?

    输入网址后到底发生了什么? 初学前端,总结一下入门知识,如有错误,不吝赐教。感谢各位阅读。 当用户打开浏览器比如谷...

网友评论

    本文标题:输入网址然后发生了什么?

    本文链接:https://www.haomeiwen.com/subject/zyzhrxtx.html