一次HTTP请求的大概过程(在浏览器中输入url后发生什么)
1、DNS服务器解析域名(url),获取相应的IP地址。
2、根据IP地址找到对应的服务器,发起TCP的三次握手,建立TCP连接后向服务器发起HTTP请求。
3、服务器响应HTTP请求,浏览器得到html代码,浏览器解析html代码、如js、css、图片、视频等资源。
4、根据服务器响应的数据,浏览器对页面进行渲染呈现给用户。
用户发送一个url地址请求,在浏览器显示得到的内容。在这过程中大部分时间用在网络传输上,真正页面执行并生成html内容所需的时间很少。其中数据传输取决于用户和服务器的网络情况,以及中间整个路由的情况,优化这一部分的成本代价非常高,因此请求过程中的第一步、第二步可以忽略。
优化应用程序性能的方法:
1、使用数据库连接池(C3PO、DBCP),让应用程序重复使用一个现有的数据库连接,从而减少连接次数。
2、优化数据库设计、SQL语句。数据库查询优化需要掌握很多内容,不展开讨论。
3、对数据做缓存处理,避免重复的数据库查询。但是缓存的实现需要花费额外的内存来存储可重用资源,因此需要管理缓存以及删除过时的资源。
4、一个html页面中往往存在大量的脚本(css、js),导致浏览器在渲染页面时发送大量HTTP,而每次HTTP请求的代价很大,所以:
- 减少脚本文件,如果2个js文件合并不会对项目维护造成影响,那么最好将它们合并
- 降低脚本文件的大小,对于js文件,可以通过工具进行压缩,去除不必要的空格、换行符等。
- 使用图片延迟加载技术,即每次只加载当前屏幕可见区域的图片,其余的图片在用户滚动页面到该位置后才开始加载。这样不但减少服务器的压力,也降低页面的加载时间。