这个题目范围很广,你要往细了说,说24小时也不为过,这里我们只需要把整体流程阐述,回答基本就80分了。
1.浏览器查看缓存,有的话直接会直接显示页面,没有的话执行下面的任务
关于查看缓存:包括浏览器缓存,系统缓存,路由器缓存,DNS缓存,比如你之前输入过同样的网站,就会有可能被缓存
2.域名解析成ip地址(域名解析)
浏览器会先查看host,如果host中有对应的ip地址,则解析为相应的ip,如果没有,则会一层层向服务器找,直到找到对应的ip(这里涉及到本地DNS服务器,DNS根服务器,域服务器,就不详细阐述了)
3.浏览器向服务器发送tcp三次握手
为撒叫三次握手呢? 这里很有意思,比如你拜托别人做一件事情,你不知道别人有没有时间,你要先发出请求问一下别人是否有时间(第一次握手),别人响应你有时间(第二次握手),你要回复人家一下谢谢,这是基本的礼貌(第三次握手)
4.握手成功后发送http请求
此时会携带数据信息,请求头,请求体等,发送到服务器
5.服务器响应请求,也是通过http返回数据
6.浏览器根据返回的数据,以及页面的js,生成dom树(浏览器可以认识的文档节点),也就是我们看到的页面
一般面试官也会给你几分钟的时间,或者中途问一些细节,所以也要尽量熟悉更深的原理,关注我,带你了解更多互联网小知识。欢迎下方评论留言交流~
往期干货: