博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
当用户输入网址到页面展现,发生了什么?
阅读量:4922 次
发布时间:2019-06-11

本文共 701 字,大约阅读时间需要 2 分钟。

  当我们输入地址的时候,浏览器就开始在匹配可能的url,在书签、历史记录等地方查找,然后给出提示,让用户可以补全url地址。

  当网址完全输入,按下回车键时,浏览器做的第一件事就是DNS解析。浏览器会先去本地的hosts文件中看看有没有和这个域名对应的ip,如果有就打开这个ip,没有的话浏览器会发送DNS请求到DNS服务器,这个过程先去本地的DNS服务器查找,有则返回,没有的话本地DNS服务器继续向根DNS服务器发送请求,然后将获取到的ip返回,并且本地的DNS服务器还将这个对应关系保存在缓存中,方便下次查询。这里的查询是迭代查询,查询的递交者是客户端。

  拿到对应的ip后,浏览器与服务器通过三次握手建立TCP/IP连接后,发送http请求,进行网络通信,浏览器从应用层到传输层(TCP)、到网络层(IP)、到链路层(网络),客户端发送请求的阶段结束。

  服务器接收到客户端发送的http请求后,查找客户端请求的资源,然后再从链路层到网络层、到传输层、到应用层,将响应报文返回,通过四次挥手断开TCP/IP连接。

  浏览器收到html、css、js等文件后,解析html构建DOM树、构建render树、布局render树、绘制render树,然后解析css文件构建渲染树,这个过程完成后,浏览器开始布局渲染树并将其绘制到页面中。

在首次加载时会经历回流和重绘,速度较慢。js的加载可以看成是这个同步的主线程上的一个任务队列。有的网页页面很大,可以用预加载和懒加载提升用户体验。

转载于:https://www.cnblogs.com/wuqilang/p/11192313.html

你可能感兴趣的文章
数据的类型以及内置方法
查看>>
继承之super关键字的使用
查看>>
XML - 报表数据的新大陆
查看>>
echart在X轴下方添加字
查看>>
Map集合的两种取出方式
查看>>
GridView,Repeater增加自动序号列
查看>>
SMO算法精解
查看>>
第k小元素学习记录
查看>>
avi文件格式详解【转】
查看>>
django
查看>>
Java学习从入门到精通
查看>>
查找目录下的所有文件中是否含有某个字符串 linux
查看>>
2018年各大互联网前端面试题四(美团)
查看>>
一起学Python:字符串介绍
查看>>
学习笔记:树状数组
查看>>
洛谷P1772 [ZJOI2006]物流运输 题解
查看>>
CF519E A and B and Lecture Rooms
查看>>
python-redis之数据类型二
查看>>
Java类加载机制
查看>>
循环单链表实现
查看>>