前端关于url输入到页面加载过程

来源:互联网 发布:酷狗音乐mac版下载 编辑:程序博客网 时间:2024/05/30 23:04

url从输入到后来页面加载完成到底经过了哪些过程呢?今天就让我们来学习下吧

通常我们所说的URL输入基本上是键盘输入,在移动端触摸屏上指的是手机操作系统通过获取人类在触摸屏上的动作获取用户输入的网址,这里原理就不赘述了,大家有兴趣的可以去参阅下其他博客。

操作系统将输入事件传递到了浏览器中,在这个过程中,浏览器一般会做下预处理,比如浏览器会根据你的历史记录来预估所输入字符对应的网站,比如你输入了[ba],根据之前的历史90%的概率会访问百度,因此会在输入回车前马上建立TCP链接甚至渲染。当用户输入URL后回车,浏览器将检查URL,判断协议,如果是HTTP就按照web来处理,另外还会对这个URL进行安全检查,然后直接调用浏览器内核中的对应方法,比如webview中的loadUrl(注意浏览器和浏览器内核是不同概念,浏览器指的是chrome、Firefox而浏览器内核是blink。gecko,浏览器内核只负责渲染,GUI以及网络连接等跨平台工作则是浏览器实现的)

然后我们就通过DNS获取我们输入网址的对应IP,获取IP后,就要通过Socket发送数据。

数据从本机网卡发送到服务器

从内核到网络适配器,前面说到调用socket API后内核会对数据进行底层协议栈的封装,接下来启动DMA控制器,它将从内存中读取数据写入网卡,然后网卡经过各种路由,最终通过光纤来到了服务器所在的IDC机房,光纤中的数据进入集群交换机,然后再转发到机架顶部的交换机,最后通过这个交换机的端口将数据发往机架中的服务器

服务器CPU

当数据进入到服务器网卡时候,网卡会将数据拷贝到内存中,然后通过中断来通知CPU,然后进入到后台服务。数据进入到真正到处理服务器前,还会经过负责负载均衡的机器,如基于硬件的F5,操作系统传输层(TCP)上的LVS,也有在应用层HTTP实现反向代理。

经过负载均衡后,将进入对应服务器上的web  server如nodejs apache等,

服务器返回数据后浏览器的处理

服务器处理完请求后,结果将通过网络发回客户端的浏览器,然后浏览器进行渲染。。。。后续接着补充????

0 0
原创粉丝点击