HTTP 302
Відповідь за протоколом HTTP із кодом статусу 302 Found зазвичай використовується для виконання перенаправлення на іншу сторінку. HTTP відповідь з цим статус кодом додатково містить в собі URL-посилання на HTTP локацію в полі HTTP заголовка. Клієнтський браузер таким чином отримує команду виконати другий запит за новим URL-посиланням, яке вказане у заголовку, в іншому випадку повторює запит. В специфікації HTTP/1.0 (RFC 1945) цей код спочатку мав інше описання — "Тимчасово переміщено".
Багато веббраузерів реалізували свою поведінку при отриманні відповіді з цим кодом порушуючи стандарт, змінюючи тип нового запиту на GET, не зважаючи на тип попереднього запиту (наприклад POST ) [1] У зв’язку з цим, у стандарт HTTP/1.1 (RFC 2616) було введено нові статус коди 303 і 307, щоб усунути неоднозначності між двома типами поведінки. Отримуючи статус 303, браузер обов’язково має змінити тип запиту на GET, а при наявності статус коду 307 має зберегти тип попереднього запиту. Попри існування нових статус кодів, які розв'язують проблему неоднозначності, код 302 досі існує в веб фреймворках для того, щоб зберегти сумісність із браузерами, які не підтримують специфікацію HTTP/1.1.[2]
Як наслідок, в новій редакції RFC 2616 поведінка була змінена, так що замість автоматичної переадресації користувачу дається можливість змінити умови нового посилання з POST на GET і підтвердити дію.[3]
Клієнтський запит:
GET /index.html HTTP/1.1 Host: www.example.com
Відповідь серверу:
HTTP/1.1 302 Found Location: http://www.iana.org/domains/example/
- ↑ Lawrence, Eric. HTTP Methods and Redirect Status Codes. EricLaw's IEInternals blog. Архів оригіналу за 21 червня 2013. Процитовано 20 серпня 2011.
- ↑ Request and response objects | Django documentation | Django. Docs.djangoproject.com. Архів оригіналу за 10 липня 2014. Процитовано 23 червня 2014.
- ↑ draft-ietf-httpbis-p2-semantics-26 - Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content. Tools.ietf.org. Архів оригіналу за 5 липня 2014. Процитовано 23 червня 2014.