web思维1

web思想1
今天研究了一下Tomcat源码 使用myeclipse远程调试方式。
下面总结一下 3个月以来, 对web的理解。

和当年开发QQ一样底层还是 Socket

当初QQ开发的时候, 客户端自己写,服务器自己写 使用的是Tcp/Udp。 通信协议是自己定。

而现在Web   客户端:浏览器     服务器:Tomcat等等  协议:http
也就是说:我们不需要开发服务器,也不需要开发客户端。我们仅仅是在服务器端写写资源处理器然后通过浏览器 访问相应的地址显示我们的资源文件。


浏览器 和服务器之间是TCP 连接方式  
访问 主机:端口 地址后  建立了一对Tcp连接
关闭浏览器:  连接断开
自我感觉好像是这样的。 

先到这里, 明天继续
1 楼 raypominfo 2011-06-03  
浏览器 和服务器之间是TCP 连接方式  
访问 主机:端口 地址后  建立了一对Tcp连接
关闭浏览器:  连接断开

这个是不对的。

web服务器如果是一个浏览器访问一下就开一个链接的话。那么连接数是有限的。必然会遇到连接数被用完;而其他的访问没办处理了。

一般情况下是这样的:浏览器请求一个http地址的时候与服务器建立连接;获取服务器返回的内容之后连接就断开。第二次请求再建立连接如此。
但是有些网站首页东西比较多,很多的什么js、css文件需要加载。而且js或者是css文件的请求与http的页面加载主请求不在一起;而每次创建连接必然是有性能损耗的,为了提升性能很多情况下可以在服务器端设置长连接;在多长时间内或者是多少次请求内共用一个链接。这个长连接也是相对的,一般都不会是长时间开着不关闭,而是将相邻的几个请求在一个连接中处理请求完成。上面讲到的为了优化js、css的多次请求的连接性能损耗,我们通常也将js或者是css合并一个文件再加载到浏览器中,节省了多次请求。
2 楼 lrysir 2011-06-03  
难怪最近 经过页面的 整合后  里面发现 点击一个连接的时候 速度下降了, 果然是里面一堆js css 的, 经过整合在一起之后发现速度确实提示了
3 楼 raypominfo 2011-06-03  
对于js和css这些静态文件一般情况下都会有页面缓存;浏览器第一次加载的时候就缓存在浏览器的临时文件中了。很多情况下都不会再去拿了。所以IE浏览器里面也有相关设置。在internet临时文件与历史浏览记录设置中 设置检查所存网页的较新版本;一般情况下设置为:自动。所以很多时候ajax请求的时候发现数据不对;不是最新的很多情况是因为没有去服务器获取;而是拿的本地临时数据。我们可以设置自己的浏览器为每次请求都请求服务器。但是我们没有办法为所有的用户设置该选项。所以很多时候我们会为js的一些请求带上时间戳来控制版本。让客户端总能获得最新的相关文件和内容。