通过测试浏览器对网页中元素请求,提出减少浏览器请求的建议

来源:互联网 发布:c 二维数组赋值结构 编辑:程序博客网 时间:2024/05/22 08:02


最近一直在学习linux网络编程这一块的内容,自己做了一个简单web服务器,以前无法确切的了解web浏览器访问网页的的请求过程。现在有着样的条件了,所以就自己实现一下看看过程了。

浏览器展示一个网页的过程:(不涉及本地缓存,假设本地没有缓存)

  1. 浏览器向服务发送请求,请求一个页面。

  2. 服务器响应请求,向浏览器发送页面。

  3. 浏览器加载页面,如果有外部文件,转向4步,没有结束

  4. 浏览器依次生成进程,分别请求所需文件。

  5. 服务器响应请求,向浏览器发送外部文件。

  6. 浏览器加载外部文件。

下面是我测试得到的结果的截图。(此网页中有外部的css、js、图片)

浏览器结果(本代码和结论只经过本人的简单测试,可能存在问题。请相信自己的能力,敢于质疑。欢迎提供更好的、更快、更简洁的代码或者方法和指出错误。在ubuntu12.04使用gcc4.6.3版本编译,在vc中如出现错误,请谅解。)

请求网页的效果图:



得到浏览器请求的结果:

 


看完测试结果后,大家发现浏览器先请求了页面,依次请求了外部文件所需要的文件。由于我写的是单线程的服务端,大家可能会看到浏览器发送请求的文件的顺序,如果你看了网页的源代码,你会发现web浏览器请求的顺序正好是网页中的书写顺序。我可以将想要优先显示的内容书写到代码考前的部位。

通过以上信息对于web开发者的建议:

  1. 将内容少的jscss直接嵌入网页中,从而减少浏览器的对web服务器的请求次数。减少web服务器的负担。

  2. 减少外部文件,将可以合并的文件放到一个文件中,从而减少浏览器的对web服务器的请求次数。减少web服务器的负担。(可以选择在发布时合并文件,便于开发。通常是css和js文件)

  3. 见多个小图表合并到一起,统一请求文件。
  4. 将优先显示的外部文件代码书写到前面。将不重要的文件放到最好请求。

  5. 同一个外部文件网页只会请求一次。

如果针对本页面来说,js为空,css内容也很少,如果直接嵌入网页页面中,将会只有两次web浏览器请求的。

代码和测试主页、makefile等文件:测试文件按文件地址

blog:http://blog.csdn.net/rentiansheng/article/details/8274489




原创粉丝点击