Записи за July, 2010

Редирект после запроса HTTP POST

Thursday, July 15th, 2010

Протокол HTTP подразумевает выполнение редиректа на новую страницу после обработки данных, полученных от пользователя методом POST. Само собой, это не обязательно. А на страницах, где методом POST отправляется некоторый поисковый запрос, это вообще ни к чему. Нужен он лишь в случаях, когда отправленные данные где-то на сервере сохраняются – тогда редирект позволяет избежать двойной отправки данных при перезагрузке страницы по F5 или при возврате на неё.
Если следовать протоколу, то согласно RFC 2616 сервер на запрос POST должен отвечать статусом 303 See Other, так как обычный для редиректа статус 302 Found должен использоваться по стандарту только для запросов GET или HEAD. Единственным подводным камнем можно считать то, что существуют юзер-агенты, не понимающие стандарта HTTP/1.1 и, следовательно, не знающие статуса 303. Впрочем, я склонен думать, что это раритет и ориентироваться на него не стоит. Тем более, что получение статуса 302 в ответ на POST-запрос может заставить некоторые браузеры, свято блюдущие букву стандарта, выдать пользователю предупреждение.
Вот как реализую редирект я.
(more…)

Метки: ,
Категория: Perl, Web-dev | Нет комментариев »