美文网首页
【HTML】从输入 URL 到页面加载完成的过程中都发生了什么事

【HTML】从输入 URL 到页面加载完成的过程中都发生了什么事

作者: izhongxia | 来源:发表于2016-09-14 11:07 被阅读87次

    创建时间:2016-09-05 00:07:17
    原文地址:http://fex.baidu.com/blog/2014/05/what-happen/

    阅读请出门左转 原文地址

    imageimage

    总结

    这一篇文章写的知识基本都是很底层的东西,权当增长见识, 因为单纯的前端,这里的内容就需要花费很大的精力, 才有可能『搞懂』。
    【这两天偷懒,没有自己自己去整理出文章,转载一些优秀的文章,放到这里】

    目录:

    背景

    imageimage

    第一个问题:从输入 URL 到浏览器接收的过程中发生了什么事情?

    • 从触屏到 CPU
    • CPU 内部的处理
    • 从 CPU 到操作系统内核
    • 从操作系统 GUI 到浏览器
    • 扩展学习

    第二个问题:浏览器如何向网卡发送数据?

    • 从浏览器到浏览器内核
    • HTTP 请求的发送
    • DNS 查询
    • 通过 Socket 发送数据
    • Socket 在内核中的实现
    • 底层网络协议的具体例子
    • 扩展学习

    第三个问题:数据如何从本机网卡发送到服务器?

    • 从内核到网络适配器(Network Interface Card)
    • 连接 Wi-Fi 路由
    • 运营商网络内的路由
    • 主干网间的传输
    • IDC 内网
    • 服务器 CPU
    • 扩展学习

    第四个问题:服务器接收到数据后会进行哪些处理?

    • 负载均衡
    • LVS
    • 反向代理
    • Web Server 中的处理
    • 进入后端语言
    • Web 框架(Framework)
    • 读取数据
    • 扩展学习

    第五个问题:服务器返回数据后浏览器如何处理?

    • 从 01 到字符
    • 外链资源的加载
    • JavaScript 的执行
    • 从字符到图片
    • 跨平台 2D 绘制库
    • GPU 合成
    • 扩展学习

    第六个问题:浏览器如何将页面展现出来?

    • Framebuffer
    • 从内存到 LCD
    • LCD 显示
    • 扩展学习

    本文所忽略的内容

    为了编写方便,前面的介绍中将很多底层细节实现忽略了,比如:

    内存相关

    • 堆,这里的分配策略有很多,比如 malloc 的实现
    • 栈,函数调用,已经有很多优秀的文章或书籍介绍了
    • 内存映射,动态库加载等
    • 队列几乎无处不在,但这些细节和原理没太大关系

    各种缓存

    • CPU 的缓存、操作系统的缓存、HTTP 缓存、后端缓存等等

    各种监控

    • 很多日志会保存下来以便后续分析

    相关文章

      网友评论

          本文标题:【HTML】从输入 URL 到页面加载完成的过程中都发生了什么事

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