有时候,图片数据太多,一些公司的解决方法是将图片数据分到多个域名的服务器上,这在一方面是将服务器的请求压力分到多个硬件服务器上。另一方面,是利用了浏览器的特性。一般来说,浏览器对于相同域名的图片,最多用 2-4 个线程并行下载。不同浏览器的并发下载数,都是不同的,并发数如下清单所示。
Browsers HTTP/1.1 HTTP/1.0 IE6,7 2 4 IE8 6 6 FireFox 2 2 8 FireFox 3 6 6 Safari 3,4 4 4 Chrome 1,2 6 ? Chrome 3 4 4 Opera 9.63,10.00alpha 4 4
而相同域名的其他图片,则要等到其他图片下载完后才会开始下载。 这里我做了一个测试,选择了多个相同域名的图片在同一网页上。代码如清单 5 所示。
<html> <body> <img src="http://img1.gtimg.com/news/pics/hv1/123/231/804/52339128.jpg"><br> <img src="http://img1.gtimg.com/news/pics/hv1/87/235/804/52340112.jpg"><br> <img src="http://img1.gtimg.com/finance/pics/hv1/41/119/804/52310486.jpg"><br> <img src="http://img1.gtimg.com/sports/pics/hv1/246/198/804/52330836.jpg"><br> <img src="http://img1.gtimg.com/ent/pics/hv1/101/54/805/52358996.jpg"><br> <img src="http://img1.gtimg.com/blog/pics/hv1/169/226/804/52337899.jpg"> </body> </html>
接下来,使用 FireFox 的 Firebug 插件监控网络。结果如下图所示。
可以看到,相同域名的多张图片,它们下载的起始点是存在延迟的。它们并不是并行下载。当我们将其中的 3 张图片换成别的域名图片。如清单 6 所示。
<html> <body> <img src="http://img1.gtimg.com/news/pics/hv1/123/231/804/52339128.jpg"><br> <img src="http://img1.gtimg.com/news/pics/hv1/87/235/804/52340112.jpg"><br> <img src="http://img1.gtimg.com/finance/pics/hv1/41/119/804/52310486.jpg"><br> <img src="http://i0.itc.cn/20110624/64a_2ee7d710_2ec6_b38d_b678_dc3af28392be_1.jpg"><br> <img src="http://i0.itc.cn/20110624/3b0_643eaea5_1233_b543_82b7_9c7273c7f97c_1.jpg"><br> <img src="http://i0.itc.cn/20110623/962_fa6e8a78_625a_1234_147f_3a627fe17033_1.jpg"> </body> </html>
再次查看网络监控,可以看到,这些图片是并行下载的。
多域名的下载固然很好,但是太多域名并不太好,一般在 2-3 个域名下载就差不多。
原创文章@java教程网 转载请标明出处
java教程网编辑发布:希望本系列的文章对你的个人成长和发展有帮助。
从java新手入门,开发工具 到 Java进阶,高级编程,java教程网几乎囊括了java编程的所有方面的资料。
相关推荐
- **服务器端计算为核心**: 侧重于服务器端的应用开发和服务提供,确保高性能、高可用性。 - **分布式特性**: 支持跨网络的组件间通信,实现资源和服务的共享。 - **安全性**: 提供安全机制来保护应用程序免受...
根据给定的文件信息,以下是对“网上商城Java Web开发原理课程设计报告”中的关键知识点进行的详细解读: ### 一、绪论 #### 1.1 课题研究背景 随着21世纪的到来,信息技术的飞速发展极大地改变了人类的工作方式...
综上所述,开发Java短网址服务涉及了哈希算法、数据库操作、编码解码、分布式ID生成、JSP技术以及安全性与性能优化等多个方面。理解并掌握这些关键技术,能帮助我们构建高效、可靠的短网址系统。
### 实战Nginx:取代Apache的高性能Web服务器 #### Nginx简介及选择理由 - **Nginx简介**:Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,由俄罗斯的程序设计师Igor Sysoev所...
这个项目涵盖了Web开发的多个方面,包括前后端交互、数据库设计、用户认证、性能优化等,对于学习和提升Java Web开发技能具有很高的实践价值。通过参与或研究这个项目,开发者可以深入了解B/S架构下的系统设计与实现...
综上所述,Kangle凭借其轻量级架构、高性能、易于管理的特性,以及对Web应用开发的强大支持,成为企业和个人开发者构建高效Web服务的优选工具。无论是小型网站还是大型企业应用,Kangle都能提供可靠且高效的解决方案...
- **Nginx**:作为高性能的反向代理服务器,它负责接收来自互联网的请求,根据配置进行路由分发,同时可以缓存静态资源,减轻后端服务器的压力。 - **Tomcat**:是Apache软件基金会的Java Servlet容器,主要用于...
2. **高性能**: 尽管体积较小,Tomcat依然提供了出色的性能表现,尤其是在处理静态文件和执行简单的动态页面时。 3. **易用性**: 它具备简单易用的特点,安装配置简便,支持多种操作系统环境,包括Windows、Linux等...
在高职院校的Java Web课程中,讲解Web服务器的原理与教学方法是一项至关重要的任务。Web服务器作为互联网应用的基础,理解其工作原理对于学生掌握Web开发技术具有决定性的影响。本篇将深入探讨如何有效地教授这一...
【北大青鸟-当当网上书城 Web开发】是一个针对Web开发的学习资源,它涵盖了从基础到高级的各种技术,旨在帮助学生或初学者掌握构建网上书店所需的技能。这个项目可能是由北大青鸟教育机构设计的,以提供一个实战性的...
2. 处理请求:Web服务器接收来自用户的请求,处理这些请求,并将结果返回给用户。 3. 安全性:Web服务器通过SSL/TLS加密确保数据传输安全,防止数据被窃取。 4. 可扩展性:Web服务器支持负载均衡和集群配置,可以...
### JAVA程序开发技术知识点梳理 #### 第一章:线程 **1.1 线程的概念** - **定义**:线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。 - **特点**: - 轻量级实体; -...
**Apache Tomcat**(简称Tomcat)是Apache软件基金会的Jakarta项目中的一个重要的子项目,是一个开源的轻量级Web应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。...
在Java Web开发中,Ajax的应用主要集中在JSP(JavaServer Pages)和Servlet中。 1. **JavaScript基础**:Ajax的核心是JavaScript,因此理解JavaScript的基础至关重要。这包括DOM(Document Object Model)操作、...
Java Web中的Session跨域共享问题通常出现在分布式系统或者微服务架构中,多个Web服务器需要共享用户的登录状态。在传统的单体应用中,Session是存储在单一服务器上的,但随着技术的发展,应用程序往往被拆分为多个...