zoukankan      html  css  js  c++  java
  • 当用户输入网址到页面展现,发生了什么? 吴小明

      当我们输入地址的时候,浏览器就开始在匹配可能的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的加载可以看成是这个同步的主线程上的一个任务队列。有的网页页面很大,可以用预加载和懒加载提升用户体验。

  • 相关阅读:
    【monkey测试】Fragment not attached to Activity
    android加载字体内存泄漏的处理方法
    性能测试—瓶颈分析方法
    EXT 环境部署
    测试用例设计
    软件测试职业规划
    mysql存储过程
    testlink安装
    并崩溃原因及解决方案
    MySQL正则表达式
  • 原文地址:https://www.cnblogs.com/wuqilang/p/11192313.html
Copyright © 2011-2022 走看看