打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
浏览器工作原理

首先对上篇blog进行一个补充:

以我做的“基于线程池和数据库连接池的web服务器”为例,说说HTTP通信的流程,大体分为三个阶段:

A. 连接  服务器通过一个ServerSocket类对象对8000端口进行监听,监听到之后建立  

连接,打开一个socket虚拟文件。

B. 请求  创建与建立socket连接相关的流对象后,浏览器获取请求,为GET请求,则

从请求信息中获取所访问的HTML文件名,向服务器发送请求。

C. 应答  服务收到请求后,搜索相关目录文件,若不存在,返回错误信息。若存在,

则想html文件,进行加HTTP头等处理后响应给浏览器,浏览器解析html

文件,若其中还包含图片,视频等请求,则浏览器再次访问web服务器,异

常获取图片视频等,并对其进行组装显示出来。

 

Ok 言归正传! 写上篇blog时,留下了一个问题,就是浏览器的工作原理,在我们输入一个网址就获得如此丰富多彩的网络世界的背后究竟发生了什么事请,作为一个软件工程的学生很有必要研究一下! 上网查了查,想总结如下:

S1 浏览器根据你输入的网址查找IP地址。这里涉及到一个叫DNS(域名解析系统)的东西,专门用于查找域名对应的IP地址的。当然,处于性能的考虑,不是每一次都需要到这个系统中进行查找的,这里边会有很多的缓存对一些对应信息进行缓存。会依次查询:浏览器缓存,系统缓存,路由器缓存,ISP DNS缓存,ISP DNSroot域名服务器到自己的域名服务器进行递归搜索。

 

            这里产生一个问题:负载平衡器;

S2 浏览器向服务器发送请求。(当然,有时候浏览器中有缓存另当别论)。这里就是上篇blog中提到的过程了。

        当然这里可以有一个小插曲,重定向响应。当输入http://facebook.com/时,当服务器回给浏览器响应一个301永久重定向响应。

        浏览器接到重定向后就会跟踪重定向,进而浏览器就会访问“http://www.facebook.com/” 而非“http://facebook.com/”

            这里也产生一个问题:cookies

 

S3 服务器处理请求。 服务器接受请求,并进行处理。

            这里面还是大有文章可做啊。具体的如何处理的,那又将是一个美丽的世界:

     里面至少包括下列知识:

            Web服务器(IIS,阿帕奇等),CGIservletaspjsp,以及我们现在所学的web开发(HSS框架,设计模式等等)大都是在做这个事情。

 

S4 服务器发回一个HTML响应

S5 浏览器开始显示html

S6 浏览器发送嵌在html中的相关对象。如:图片,CSSJS等。这些资源同样需要经历想访问html文件的流程。

这里同样有很多东西可以研究的啦!像这些静态资源如何存放,有个叫内容分发器的东西(将这些资源分发到不同的数据中心备份),负责平衡器等在这里就有用处了。

    

S7 补充浏览器发送一个AJAX请求。

         对这个还不是太明白,同样产生一个问题:AjAx

        

      查资料了解到:

fiddler这个工具能够让你看到浏览器发送的异步请求。事实上,你不仅可以被动的做为这些请求的看客,还能主动出击修改和重新发送它们。AJAX请求这么容易被蒙,可着实让那些计分的在线游戏开发者们郁闷的了。(当然,可别那样骗人家~

Facebook聊天功能提供了关于AJAX一个有意思的问题案例:把数据从服务器端推送到客户端。因为HTTP是一个请求-响应协议,所以聊天服务器不能把新消息发给客户。取而代之的是客户端不得不隔几秒就轮询下服务器端看自己有没有新消息。

这些情况发生时长轮询是个减轻服务器负载挺有趣的技术。如果当被轮询时服务器没有新消息,它就不理这个客户端。而当尚未超时的情况下收到了该客户的新消息,服务器就会找到未完成的请求,把新消息做为响应返回给客户端。

 

写本blog遇到的问题如下:

1. 负载平衡器  是以一个特定IP地址进行侦听并将网络请求转发到集群服务器上的硬件设备。 一些大型的站点一般都会使用这种昂贵的高性能负载平衡器。 ???多次接触到这个词了~~~~ 先放这下次解决!

2.       Cookies

3.       AJAX

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
优化网站性能规则_前端性能优化策略【网络加载、页面渲染】
提高 Web 站点性能的最佳实践
Web前端性能优化——如何提高页面加载速度
从输入网址到显示网页,这个过程究竟发生了什么? - CSS9.NET
你在浏览器输入了baidu.com 并按下回车后,背后到底发生了什么?
在浏览器地址栏输入URL,按下回车后究竟发生了什么?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服