浏览器工作原理-导航流从输入URL到页面展示
2019-10-25 16:24:43 0 举报
浏览器工作原理-导航流从输入URL到页面展示
作者其他创作
大纲/内容
将搜索内容+默认浏览器引擎组合成新的URl
同一个域名同时最多只能建立 6 个TCP 连接,判断链接大于6
等待
网络层接收到响应数据进行解析(响应行的状态码200/301/302/304/404/50)
状态码?
Y
直接进入网络请求流程,进行DNS域名解析获取域名的服务器IP地址端口号
搜索内容符合URl规则,浏览器会根据URL协议将内容加上合法URl
浏览器会发出“提交文档(响应数据)”的消息给渲染进程,渲染进程收到消息后,网络进程建立传输数据的“管道”
返回新数据,200的状态码,并且如果想要浏览器缓存数据的话Cache-Control:Max-age=2000
404/500(服务器报错)
服务器要我们去找响应头要数据Location字段中附上重定向地址,浏览器会根据code和Location进行重定向操作
利用IP地址和服务器建立TCP链接(3次握手)
浏览器构建数据包(请求行,请求头,请求正文,并把该域名相关Cookie等数据附加到请求头源端口号、目的程序端口号)
文档数据传输完成后,渲染进程会返回“确认提交”的消息给浏览器进程
N
301/302
建立TLS链接
目的服务器HTTP解析请求头和请求体,构建响应数据将数据发送给网络层
把url传递
复用之前网页的进程
,如果没有更新,就返回304状态码,相当于告诉浏览器之前的缓存还可以使用,就不返回新数据了
渲染进程对文档进行页面解析和子资源加载,HTML 通过HTM 解析器转成DOM Tree(二叉树类似结构的东西),CSS按照CSS 规则和CSS解释器转成CSSOM TREE,两个tree结合,形成render tree(不包含HTML的具体元素和元素要画的具体位置),通过Layout可以计算出每个元素具体的宽高颜色位置,结合起来,开始绘制,最后显示在屏幕中新页面显示出来
底层(通过物理网络)传递给目的服务器
用户输入URL,浏览器会根据用户输入信息判断是搜索还是网址
数据传输完毕(TCP四次挥手断开连接,可以采用长连接提高资源加载速度Connection:Keep-Alive )
传递给
是搜索内容
浏览器工作原理-导航流从输入URL到页面展示
用户输入内容回车,浏览器导航栏loading状态,页面还是前一个页面,新页面响应数据未获取
请求协议HTTPS
网络进程(发起真正的网络请求)
application/octet-stream 字节流类型,就将该请求交给下载管理器导航流结束
浏览器通过IPC进程间通信(浏览器进程浏览器构建请求行信息,会通过进程间通信(IPC)将URL请求发送给网络进程)
网络层在数据包加上IP头部信息(源IP和目的IP)
创建一个单独的渲染进程
浏览器进程获取通知,判断是否同站点(根域名和协议一样就被认为是同一个站点)
将缓存资源返回给浏览器
返回的是网页类型则为 text/html,浏览器进程获取文档,准备渲染进程
浏览器收到“确认提交”的消息后,会更新浏览器的页面状态,包括了安全状态、地址栏的 URL、前进后退的历史状态,并更新web页面,此时的web页面是空白页
传输层(解析TCP头部,端口号)传递给应用层
网络进程接收到url查找有没有缓存cache
响应数据又顺着应用层——传输层——网络层——网络层——传输层——应用层的顺序返回到网络进程
目的服务器网络层接收数据包解析IP识别数据解析数据包
服务器根据请求头里If-None-Match 的值来判断请求的资源是否被更新
返回数据已什么格式打开?响应信息中Content-Type类型
0 条评论
下一页