Apache Web 服务提供的每个 NTLM 身份验证页面请求都在执行 CAN 事务

Apache Web 服务提供的每个 NTLM 身份验证页面请求都在执行 CAN 事务

我开发了一个在公司内部网中运行的 TYPO3 应用程序。它基于 CENTOS 6 平台构建,带有 MySQL 数据库(5.1.16)和 Apache Web 服务器(版本 2.2.15)。对于身份验证,我们使用 NTML Apache 模块mod_ntlm.我们使用 PHP 作为服务器端应用程序语言。

我已将 Apache 服务器配置为使用 KeepAlive(KeepAlive On)。其他设置如下:

  • 最大KeepAliveRequests 100
  • KeepAliveTimeout 5

为了测试目的,我使用了一个测试文件/页面(“test.php”)。它包含一个指向 css 文件的链接。当我在浏览器(Mozilla Firefox)上访问此页面并查看服务器访问日志时,我看到以下条目:

172.16.xxx.xxx - - [17/Dec/2014:16:39:18 +0100] "GET /test.php HTTP/1.1" 401 401 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:34.0) Gecko/20100101 Firefox/34.0"
172.16.xxx.xxx - - [17/Dec/2014:16:39:18 +0100] "GET /test.php HTTP/1.1" 401 401 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:34.0) Gecko/20100101 Firefox/34.0"
172.16.xxx.xxx - hoermann.klaus [17/Dec/2014:16:39:18 +0100] "GET /test.php HTTP/1.1" 200 188 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:34.0) Gecko/20100101 Firefox/34.0"
172.16.xxx.xxx - - [17/Dec/2014:16:39:18 +0100] "GET typo3conf/ext/theme_bigportal/Resources/Public/CSS/frontend.css HTTP/1.1" 401 401     "http://portal.test.at/test.php" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:34.0) Gecko/20100101 Firefox/34.0"
172.16.xxx.xxx - - [17/Dec/2014:16:39:18 +0100] "GET /typo3conf/ext/theme_bigportal/Resources/Public/CSS/frontend.css HTTP/1.1" 401 401 "http://portal.test.at/test.php" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:34.0) Gecko/20100101 Firefox/34.0"
172.16.xxx.xxx - hoermann.klaus [17/Dec/2014:16:39:18 +0100] "GET /typo3conf/ext/theme_bigportal/Resources/Public/CSS/frontend.css HTTP/1.1" 200 71701 "http://portal.test.at/test.php" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:34.0) Gecko/20100101 Firefox/34.0"

现在我的问题是:这难道不是一种错误的行为吗?对 CSS 文件的第二个请求不应包含 CAN 事务,因为已建立的 TCP 连接保持活动状态(由于 Apache 上的“KeepAlive On”设置),并且有效期至少为 5 秒。我是这样理解的:第一个请求需要进行身份验证。在 CAN 请求之后,我得到了此资源的 200。后续请求将重用 TCP 连接,无需再次进行身份验证。

你知道为什么 Apache 对页面上的每个请求都这样做吗? 总是这样。

相关内容