为什么iframe让服务器发出请求而不是客户端

时间:2012-06-01 14:36:54

标签: jsp java-ee tomcat iframe internet-explorer-8

我有这样的结构  jsp / iframe / jsp / img src = servlet

在访问日志中,它显示服务器的ip地址,使servlet请求不是 客户? Servlet地址是客户端处于粘性状态的集群地址的上下文变量 会话到特定服务器,但iframe不是,如果它到达其他服务器,会话数据不存在。

Tomcat 6和IE8

谢谢

Server #1 log
192.**.***.*** - agt**** [01/Jun/2012:09:23:55 -0500] "POST /membership
/GenerateSignatureServlet HTTP/1.1" 200 34

192.**.***.*** - agt**** [01/Jun/2012:09:23:55 -0500] "GET /membership
/printpage.jsp?type=newmem&trh=false HTTP/1.1" 200 997

192.**.***.*** - agt**** [01/Jun/2012:09:23:55 -0500] "GET /membership/js/newmember.js
HTTP/1.1" 304 -
192.**.***.*** - agt**** [01/Jun/2012:09:23:55 -0500] "GET /membership/js/prototype- 
1.6.0.2.js HTTP/1.1" 304 -
192.**.***.*** - agt**** [01/Jun/2012:09:23:55 -0500] "GET /membership/theme
/FBMembership.css HTTP/1.1" 304 -
192.**.***.*** - agt**** [01/Jun/2012:09:23:55 -0500] "GET /membership/dhtmlmodal
/windowfiles/dhtmlwindow.css HTTP/1.1" 304 -
192.**.***.*** - agt**** [01/Jun/2012:09:23:55 -0500] "GET /membership/theme 
/signature.css HTTP/1.1" 304 -
192.**.***.*** - agt**** [01/Jun/2012:09:23:55 -0500] "GET /membership
/signaturepageprint.jsp?trh=false HTTP/1.1" 200 51441

Server #2 log
172.**.***.*** - agt**** [01/Jun/2012:09:23:56 -0500] "GET /membership  


/GenerateSignatureServlet;jsessionid=91FFBB3EAA73F3833BA507B7B9B6B317?
action=generateSigImg     HTTP/1.1" 200 39466


Back to server #1
192.***.***.*** - agt**** [01/Jun/2012:09:23:58 -0500] "POST /membership/MoveToFileNet?action=mainprocess&type=mainprocess HTTP/1.1" 200 9

1 个答案:

答案 0 :(得分:0)

如果您有一个基于服务器的组件,它使用HTML并从该标记生成PDF,那么从服务器请求PDF可能会导致服务器转向并向自己(或另一个)发出回送请求集群中的成员)以获取HTML。

如果您不喜欢看到显示群集“自称”的日志消息,您可以考虑以下几个选项:

  1. 当PDF生成器调出来获取HTML时,提供与代理相关的HTTP头,以便处理HTML请求的服务器记录请求,看起来它来自其他地方(如客户端) )。请注意,操作人员可能不喜欢此选项,因为请求确实来自群集内部,现在来自外部。

  2. 修改日志(或连接器)设置,以便以不同的方式记录这些环回请求。如果使用单独的连接器,则可以获得localhost通信速度,并在使用HTTPS时完全避免HTTPS性能命中。或者,您可以在其他地方记录这些环回请求,以免他们“污染”您的日志。

  3. 通过在不发出HTTP请求的情况下创建HTML标记来重新生成工作流以生成PDF。如果您正在使用JSP,这可能是一个很高的订单,因为您必须让JSP编译器/运行器在HTTP请求的上下文之外工作,而不是它的设计方式。

  4. 以这种方式记录这些请求有什么问题?