我正在使用mod_jk
并将apache http server
我的请求转发给两个tomcats
,并且它们运行良好。
我正在使用 Chrome 浏览器插件(高级 Rest 客户端)来测试它。当我向tomcat
(端口 8080)发出直接请求时,我在 chrome 插件中获得响应标头。但是当我使用apache
(端口 80)时,我得到了正确的响应,但 HTTP 响应标头为空白。
我试图在帮助中搜索这个Apache
,但找不到任何有用的东西。
如果您需要更多信息,请告诉我。
“我得到了正确的响应,但 HTTP 响应标头为空白。” <- 这句话不合逻辑而且有点令人困惑,因为如果您缺少响应标头,那么响应绝不是“正确的”;但我会假设您是在说您收到正确的响应正文(即 HTML)。这仍然使您对响应标头为空白的含义感到困惑,因为很难判断您是指状态行(响应的第一行,即:)HTTP/1.1 200 OK
还是其他标头字段或两者兼而有之。
从状态行开始,我将假设它确实存在,因为如果不是,您的浏览器几乎肯定会抛出错误而不是向您显示页面(我假设您的意思是“正确响应”)。
现在是其他标题。默认情况下,Apache 通常会添加一些与日期和缓存相关的响应头。实际上很难关闭所有这些,所以我倾向于相信您的响应标头实际上在传输的数据中不是空白的。
如果我是对的,那么您的“问题”最可能的原因不是服务器而是客户端,特别是您用来查看标头的插件。我对您正在使用的插件了解不多,但我想到了 2 个可能性:
1.) Apache 正在返回您的插件无法解析的标头。Apache 发送无效标头的情况非常罕见,因此故障可能是客户端解析器。
2.) 您的 Apache 选项是强制no-cache
和/或no-store
缓存控制,这会导致文档在插件可以读取之前过期和删除。
在您的位置上,我会尝试以下一项或多项:
1.) 尝试其他浏览器和/或标题显示扩展。我使用 FF "Live HTTP Headers" 扩展。
2.) 尝试使用WireShark之类的工具“在线”嗅探数据,以查看服务器真正发送的内容
除非给出更多解释,否则很难确定根本原因。请提供您的workers.properties、httpd.conf 的内容。
作为参考,请访问此链接以进行实际的解释!