美文网首页
浏览器很累啊

浏览器很累啊

作者: 指尖的宇宙 | 来源:发表于2018-06-29 10:57 被阅读0次

对于前端来说每天面对最多的就是各种终端设备的浏览器了。
在前端中经常被问到的一个问题就是:

从我们打开浏览器输入一个网址到页面展示网页内容的这段时间内,浏览器和服务端都发生了什么事情?

我们使用一个相对简洁但是很清晰的描述来解答这个问题:

  • 在接收到用户输入的网址后,浏览器会开启一个线程来处理这个请求,对用户输入的URL地址进行分析判断,如果是HTTP协议就按照HTTP方式来处理。

  • 调用浏览器引擎中的对应方法,比如WebView中的loadUrl方法,分析并加载这个URL地址。

  • 通过DNS解析获取该网站地址对应的IP地址,查询完成后连同浏览器的Cookie、
    userAgent等信息向网站目的IP发出GET请求。

  • 进行HTTP协议会话,浏览器客户端向Web服务器发送报文。

  • 进入网站后台上的Web服务器处理请求,如Apache、Tomcat、Node.js等服务器。

  • 进入部署好的后端应用,如PHP、Java、JavaScript、Python等后端程序,
    找到对应的请求处理逻辑,这期间可能会读取服务器缓存或查询数据库等。

  • 服务器处理请求并返回响应报文,此时如果浏览器访问过该页面,缓存上有对应资源,会与服务器最后修改记录对比,一致则返回304,否则返回200和对应的内容。

  • 浏览器开始下载HTML文档(响应报头状态码为200时)或者从本地缓存读取文件内容
    (浏览器缓存有效或响应报头状态码为304时)。

  • 浏览器根据下载接收到的HTML文件解析结构建立DOM(Document Object Model,
    文档对象模型)文档树,并根据HTML中的标记请求下载指定的MIME类型文件
    (如CSS、JavaScript脚本等),同时设置缓存等内容。

  • 页面开始解析渲染DOM,CSS根据规则解析并结合DOM文档树进行网页内容布局和绘制渲染,
    JavaScript根据DOM API操作DOM,并读取浏览器缓存、执行事件绑定等,页面整个展示过程完成。

整个过程中使用到了较多的浏览器功能,如:

  • 1.用户地址栏输入框、
  • 2.网络请求、
  • 3.浏览器文档解析、
  • 4.渲染引擎、
  • 5.JavaScript执行引擎、
  • 6.客户端存储等。

相关文章

  • 浏览器很累啊

    对于前端来说每天面对最多的就是各种终端设备的浏览器了。在前端中经常被问到的一个问题就是: 从我们打开浏览器输入一个...

  • 很累啊

    每次我找你,你都是爱答不理,说一句类似于很忙的话,就再也没有下文。 今天你找我聊天,我当然是秒回。聊着聊着,我说我...

  • 很累啊

    2020.6.2 今天的确是辛勤工作了一天,早上上班时候下了点雨,我有伞,缓慢步行听音乐。穿的火车道,很容易。 到...

  • 思念很累啊!

    。 要是能待在一块该多好啊

  • 拍照也很累啊

    一大早就跑去拍写真了!上一次还是大二呢,一晃十二年过去了~抛下熟睡的儿子和丈夫,一个人去了江北的工作室。在...

  • 20多岁,就很累啊

    作者:木夕 其实一直很少看韩剧,因为以前总觉得韩剧里很多都是不现实的爱情故事,单纯为了甜而甜,看的不多,但知道请回...

  • 2017-10-12

    真的很累很累很累啊 感觉快超出承受界限了 负能量爆棚 满满的负能量

  • 异地的你们都还好吗?

    其实问过很多人同样的问题,我说 异地恋是不是很累很累啊,正在经历异地的人都会说一句,对啊,真的很累 ,每天就像隔着...

  • 无。

    不开心。 很不开心。 突然的,就很想离开这个世界。 我知道我的抑郁症又犯了。 可是啊,活着啊,是真的。。。很累很累啊。

  • 什么不累?

    小时候,学习很累 后来,追女友很累 再后来,工作很累 又后来,育儿很累 后来的后来,累死 人啊,终其一生 哪里会有...

网友评论

      本文标题:浏览器很累啊

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