浏览器解析过程

DNS解析过程

  • 从用户输入URL后,一直到用户能看到界面,期间经历了什么
  • DNS解析(优先走缓存)
  • 找浏览器DNS缓存解析域名
  • 找本机DNS缓存
    • 查看本机的DNS缓存命令: ipconfig/displaydns > c:/dns.txt
  • 找路由器DNS缓存
  • 找运营商DNS缓存
    • 80%的DNS查找,到这就结束了
  • 递归查询
    • 最不愿意看到的事,查询的是全球13台DNS跟服务器中的一个

TCP的三次握手四次挥手

  • 进行TCP (协议) 连接,三次握手 (根据上一步请求回来的 ip 地址,去联系服务器)
    • 第一次握手
    • 有浏览器发给服务器 — 我想和你说话,你能听见吗
    • 第二次握手哦
    • 有服务器发给浏览器 — 你说吧
    • 第三次握手
    • 有浏览器发给服务器 — 好, 那我开始说话
  • 发送请求(请求报文)
  • 得到响应(响应报文)
  • 浏览器开始解析HTML
    • 预解析: 将所有外部的资源,发送请求出去
    • 解析HTML, 生成DOM树
    • 解析CSS,生成css树
    • 合并成一个render树
    • js 是否操作了DOM或样式
    • 有: 进行重回重排(1. 尽量避免,2.最小化重绘重排)
    • 没有: null
    • 最终展示界面
  • 断开TCP连接,四次挥手(确保数据的完完整性)
    • 第一次挥手
    • 有浏览器发给服务器 — 我的东西接收完了,你关闭了
    • 第二次挥手
    • 有服务器发给浏览器 — 我还有一些东西没有接收完,等一会,接收完了告诉你/ 如果接收完了,需要验证完整性
    • 第三次挥手
    • 有服务器发给浏览器 — 我接收完了,你断开吧
    • 第四次挥手
    • 有浏览器发给服务器 — 好的,那我断开了
    备注
  • 为什么握手要三次,挥手要四次
  • 答: 挥手之前,还没有进行数据传输,确保握手就可以了; 挥手之前,正在进行进行数据的传输,为了确保数据的完整性,必须多经历一次验证
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇