java web 服务器的相关问题,如能解决高分相送,邦具体解决者现金酬谢!
本人不才自己动手做了一个web服务器,内涵我简化了的servlet及其服务器,现在动态编译、session cookie 、request、response几个对象、数据库连接池、等等都作出来了,设计之初就是想解决web服务器过于复杂庞大的缺点,现在整个环节中最差的恰恰是基础的最外面的http访问效率很低,也作了socket线呈池,使用了keep-alive规则,但是测试起来比apache处理静态页面效率差上一半还多,并且如果网络慢很容易导致线程池满。
第一个问题:看了resin的线程池处理方法,因本人学java时间很短,所以根本没办法从中滤出头绪,但是测试(我用VS的测试工具简单测试的)显示他在处理静态页面时的确快,甚至比apache快10%左右,所以我的第一个问题就是谁能帮我把resin的线程池处理模型单独提出来,高分相送,另可考虑适当现金酬谢(决不食言)
第二个问题:熟悉http协议的请进,我在处理http的持久连接的时候发现一个不可逾越的(对于java的socket机制,因为客户端为浏览器无法使用NIO)技术问题,因为客户端是浏览器,但是我自己做的web服务器预知交互发现所有浏览器并不会在多个持久连接完成后发送任何关闭连接的信息,所以服务器在处理连接的时候只能用timeout方法才能关闭一个连接,现代浏览器一半都采取多线程,一个页面请求伴随着数个单度线程的资源请求,每个单独请求的socket都需要一个timeout,对服务器时间浪费太大,比如一个含有20个资源的页面,单独请求往往在5个左右,其余并在这些socket中使用持久连接。 对于java ,有没有办法解决?