Я разрабатываю приложение TYPO3, которое работает во внутренней сети компании. Он построен на платформе CENTOS 6 с базой данных MySQL (5.1.16) и веб-сервером Apache (версия 2.2.15). Для аутентификации мы используем модуль NTML Apache mod_ntlm. В качестве языка серверного приложения мы используем PHP.
Я настроил сервер Apache для использования KeepAlive (KeepAlive On). Остальные настройки устанавливаются следующим образом:
Для тестирования я использую тестовый файл / страницу ("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-соединение остается активным (из-за настройки «KeepAlive On» на Apache) и действует не менее 5 секунд. Я так понял: первый запрос нужно аутентифицировать. После запросов CAN я получаю 200 для этого ресурса. Следующие запросы повторно используют TCP-соединение и не требуют повторной аутентификации.
Есть идеи, почему Apache делает это для каждого запроса на странице? Все время.