操作行为
用户在浏览器搜索栏输入url,点击搜索,然后页面跳转,得到搜索到的结果,一系列的网页链接,点进去就是推荐给你的网页。当然这只是单单分析用户自身的操作行为。
</p>
这行为背后同时又有其他行为在同步进行着。比如接收请求的web服务器一直在启动http服务进程,这个进程开始定位到服务器上的www文件(网站根目录),一般位于/var/www,然后启动一些附属模块,例如php,然后向操作系统申请了一个tcp连接,然后绑定在80端口,调用accept函数,开始默默监听,监听来自于地球任何一方的请求,随时响应。这里参考了大神的前端笔记《浏览器工作原理:从 URL 输入到页面展现到底发生了什么?》。
具体
形成的逻辑
从url到网页:
这个逻辑基本是这样的,先从行为学上具体实现下吧!跟着电信号模拟下,浏览器输入url,url是定位网络资源的,统一资源定位符。这是因,既然是因,肯定不一般,跟结果是双生花一般的,因为这里面除了统一的网络协议之外,还有关键的域名。域名就是因与果的结合点了,域名具有唯一性,而且对应在服务器上的ip也是唯一对应性的,一个ip可以开多个端口,每个端口可以对应一个域名及其对应的网站,买了域名的主儿,搞台web服务器专门对这个ip服务,就可以了,然后可以产生前面讲的web服务器在时刻作什么了。
起因源于买主想要运营域名对应的网站,而只要用户通过浏览器搜索包含域名的url通过完成a操作,就可以从浏览器锁定域名对应的ip和web服务器,然后对服务器发出请求,web服务器经过处理请求做出回复,接收请求或者反向代理到其他服务器那里,通过网站处理流程b把对应的文件数据找到加工然后发给用户端的浏览器,浏览器通过c操作把数据和文件解析出来,然后最后通过d操作绘制网页。
</p>
这里的a,b,c,d操作是为了实现这个逻辑而使用的技术和命令。我直接代指了。下面会简单讲到,我也是初次接触,可能会有错,感谢大家指正。
使用的一些具体技术手段处理解析
- a操作
浏览器这个检索功能,无论输入什么,关键词或者域名,或者ip,最终目的就是为了找到目标ip,然后向目标ip所在的服务器发出请求。具体如何完成的,这里的操作是域名解析。如何解析呢?浏览器曾经访问过这个域名对应的ip,然后浏览器有记录啊,缓存dns,现在搜索的话,直接借用下路径就可了,浏览器没有记录,删了,新装的等等吧,如果曾经完成过搜索,域名和ip会存在系统缓存了,从hosts文件夹里找就行了,如果这也没有,还会从路由器缓存里找有木有,毕竟好多人用路由器的,再没有,找isp dns 缓存,,比如电信的dns上查,还是没有的话,就向根域名服务器查找域名对应ip,根域名服务器把请求转发到下一级,,,这里,我觉得根服务器跟买域名有关的,每个域名对应一个公共ip,这玩意需要买的,肯定需要登记注册的,况且,域名才是用户搜索的关键,域名才是最关键的点,必须要登记的。根服务器应该会有或者能间接得到相关的记录和买家对此的设置的。也就是说,浏览器肯定会锁定ip和对应的服务器了,然后发命令请求。至于这个行为为什么会发生?我觉得跟url的协议有关,浏览器为什么会搜索?这本身就是一种电信号,一种信息流,通过因特网(因特网这名字越来越有味儿了),去找跟电信号互补的内容,完成反应。 - b操作,网站处理流程
用户的请求就是一个触发式命令钥匙,到了IP所在的web服务器,服务器开始处理,发出文件命令,启用了路由器中的rails框架,搜索到控制器,并触发命令,控制器向视图(index.html.erb)发请求,得到html文件数据,同时向模型(iser.rb)以及模型对应的数据库发出用户请求,得到user.all数据,得到所有数据后,再综合处理出来了html文件数据,然后回馈给用户的浏览器。
这里的为什么会这样,我只能说,不懂的太多了,可能好多都是命令之间的对接,命令然后对应到另一个服务器就是运行这个命令,运行这个命令后随之而来的肯定会是设定好的命令了。 - c操作
浏览器处理,html字符串被浏览器接收后一句句读取解析,解析到link标签后重新发送请求获取css,解析到script标签后发送请求获取js并执行代码,解析到img标签后,发出请求获取图片资源,都是设定好的,全是命令。小白问下,这算是框架或者协议吗? - d操作
浏览器根据html和css计算得到渲染树,绘制到屏幕上,js会被执行
比较细节比较权威的参考,推荐大神的《浏览器工作原理:从 URL 输入到页面展现到底发生了什么?》。
有时候,不得不觉得,人类很伟大啊。
网友评论