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/

Примітки[ред.ред. код]

  1. Lawrence, Eric. «HTTP Methods and Redirect Status Codes». EricLaw's IEInternals blog. Процитовано 20 August 2011. 
  2. «Request and response objects | Django documentation | Django». Docs.djangoproject.com. Процитовано 2014-06-23. 
  3. «draft-ietf-httpbis-p2-semantics-26 - Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content». Tools.ietf.org. Процитовано 2014-06-23. 

Дивись також[ред.ред. код]