Описание на странице, на которую вы ссылаетесь, похоже, достаточно полно описывает их предполагаемое назначение:
Перенаправление 302 означает, что перенаправление является временным - клиенты должен проверять исходный URL-адрес в будущих запросах.
Редирект 303 предназначен для перенаправления запроса POST
на ресурс GET
(в противном случае клиент предполагает, что метод запроса для нового местоположения такое же, как и для исходного ресурса).
Если вы перенаправляете клиента как часть своего веб-приложения, но ожидаете, что он всегда будет запускаться с веб-приложения (например, сокращатель URL-адресов), 302 редирект имеет смысл. Редирект 303 используется, когда вы получаете данные POST
от клиента (например, отправка формы), и вы хотите перенаправить их на новую веб-страницу для получения с помощью GET
вместо POST
(например, стандартный запрос страницы).
Но посмотрите на это обратите внимание на определения кода состояния - большинство клиентов будут делать то же самое для 302 или 303:
Note: RFC 1945 and RFC 2068 specify that the client is not allowed
to change the method on the redirected request. However, most
existing user agent implementations treat 302 as if it were a 303
response, performing a GET on the Location field-value regardless
of the original request method. The status codes 303 and 307 have
been added for servers that wish to make unambiguously clear which
kind of reaction is expected of the client.
Существует четыре различных типа перенаправления (в настоящее время). Первоначально было только два, но большинство клиентов неправильно реализовали перенаправление 302, поэтому были добавлены еще два, чтобы прояснить разницу между двумя различными возможными вариантами поведения при получении 302.
В RFC, на который вы ссылаетесь, говорится об этом в разделе о перенаправлениях 302:
Примечание: RFC 1945 и RFC 2068 указывают, что клиент не разрешен чтобы изменить метод перенаправленного запроса. Однако большинство существующие реализации пользовательского агента обрабатывают 302, как если бы это был 303 ответ, выполняющий GET для значения поля Location независимо от исходного метода запроса. Коды состояния 303 и 307 имеют добавлено для серверов, которые хотят однозначно указать, какие ожидаемая реакция клиента.
Старые клиенты может не понимать 303 редирект. Все, что делает запрос HTTP / 1.1, должно понимать ответ 303.
Ответы 300 и 305 можно рассматривать как перенаправления, что означает, что существует шесть различных типов.
Используемые типы переадресации (301,302,303 ...) оказывают большое влияние на то, как поисковые системы будут индексировать и ранжировать контент. Некоторые пауки могут даже отказаться индексировать временно перенаправленный контент. Подробности можно найти в различной литературе по SEO ...