El servidor está redirigiendo al cliente a un recurso diferente, tal y como se indica en el campo de cabecera Location, cuyo objetivo es proporcionar una respuesta indirecta a la solicitud original.
El cliente puede realizar una solicitud de recuperación dirigida a esa URI (una solicitud GET o HEAD si se utiliza HTTP), que también podría ser redirigida, y presentar el resultado final como una respuesta a la solicitud original. Tenga en cuenta que el nuevo URI en el campo de cabecera Location no se considera equivalente al URI de la solicitud efectiva.
Este código de estado es aplicable a cualquier método HTTP. Se utiliza principalmente para permitir que el resultado de una acción POST redirija al cliente a un recurso seleccionado, ya que al hacerlo se proporciona la información correspondiente a la respuesta POST en una forma que puede ser identificada por separado, marcada y almacenada en caché, independientemente de la solicitud original.
Una respuesta 303 a una solicitud GET indica que el servidor de origen no tiene una representación del recurso de destino que pueda ser transferida por el servidor a través de HTTP. Sin embargo, el valor del campo Location hace referencia a un recurso que es descriptivo del recurso de destino, de manera que al realizar una solicitud de recuperación en ese otro recurso se podría obtener una representación que sea útil para los destinatarios sin que ello implique que represente el recurso de destino original. Hay que tener en cuenta que las respuestas a las preguntas de qué puede representarse, qué representaciones son adecuadas y qué podría ser una descripción útil están fuera del ámbito de HTTP.
Excepto en el caso de las respuestas a una solicitud HEAD, la representación de una respuesta 303 debería contener una breve nota de hipertexto con un hipervínculo a la misma referencia URI proporcionada en el campo de cabecera Location.
Referencias de programación del Código HTTP 303
- Symfony HTTP Status Constant
Response::HTTP_SEE_OTHER
- Python2 HTTP Status Constant
httplib.SEE_OTHER
- Python3+ HTTP Status Constant
http.client.SEE_OTHER
- Python3.5+ HTTP Status Constant
http.HTTPStatus.SEE_OTHER
- Go HTTP Status Constant
http.StatusSeeOther
- Rails HTTP Status Symbol
:see_other
- .NET HTTP Status Constant
System.Net.HttpStatusCode.SeeOther
- C# HTTP Status Enum
HttpStatusCode.RedirectMethod
- C# HTTP Status Enum (Alternative)
HttpStatusCode.SeeOther
- Rust HTTP Status Constant
http::StatusCode::SEE_OTHER