2006-11-14

Twisted и заголовки запроса

Давно поставил галочку для выполнения задачи, и несколько раз её подчеркнул. Задача состоит в оптимизации обработки HTTP запросов с if-modified-since заголовками. Задача не бог весть какая сложная и, видимо, по этому я её все время откладывал. Ограничивался лишь expires и cache-control заголовками в ответе клиенту. Работаю я с Twisted/Nevow. И до сих пор не догадывался о существовании такого камня, о который я сегодня спотыкался несколько часов. Дело в том, что Twisted не обнуляет заголовки запроса, если запрос повторяется при том же соединении. Таким образом, после первого запроса с заголовком if-modified-since, Nevow редиректит клиента на определенный адрес, после чего делает его редирект обратно на эту же страницу. При этих редиректах браузер опускает заголовок if-modified-since, но так как коннект не разрывается, то заголовок if-modified-since, переданный при первом запросе, сохраняется и в последующем.
Способ решения проблемы я опишу позже, а пока нужно провести еще несколько экспериментов, что бы быть уверенным в его выборе.

Комментариев нет: