一个浏览器与一台服务器两个端口的连接
各位社区的大虾,新手开发遇到一个比较棘手的问题,项目经理要求我解决,我似乎找到了问题所在,但是几乎找不到技术解释。
最近在开发当中遇到一件较为奇怪且值得深思的问题,那就是在一台服务器上有两个tomcat,每个tomcat部署一个项目,这两个项目属于前后台关系,在然后再同一个浏览器向这台主机的不同端口进行访问,我发现了每当访问一个项目的时候,另一个项目的连接就会失效,例如,我首先登陆一下后台进入管理页面,然后刷新前台的首页,再去后台进行操作已经不能响应,声明一下,我检查前后台的联系,发现首页仅仅是一个html静态页面,于是我又去查找web.xml的过滤所有资源的filter(<url-pattern>/*</url-pattern>),然后找到过滤器,发现也没有与后台进行联系。在同一台机器上使用两款浏览器访问,两个web项目相互没有影响。
如果说这个前后台的内容管理系统(群集的)还不能说明情况,那么我再找了一个easyui的doc作为一个项目和另外一个web项目,同样是部署在本机上的两个tomcat,每个tomcat占用不同端口,首先登陆web项目,然后刷新easyui的doc首页,再去对登陆上去的web项目操作,web项目不能操作,且会定向到登陆页面。然后再次使用两款浏览器一对一进行访问两个web项目,发现登陆上去的web项目不受easyui doc项目的影响。
最后大胆得出一个结论或者巧合:浏览器为了减少连接数对内存的损耗,对于一台机器(不管端口)仅仅进行一条连接,部署在同一台机器不同端口的项目进行访问,浏览器会重置连接端口,保持一台机器只有一条连接。
发帖时想请各位驰骋技术界的各路精英指点迷津,发表高见,如有吐槽的,请文明用语,我会谦虚接受
------解决方案--------------------你说的“另一个项目的连接就会失效”是指什么?返回到登录界面了?
应该是 jSessionID 被互相覆盖掉了。
解决方案:给不同应用指定不同的、用于标识SessionID 的Cookie名称。