HTTP 303
HTTP 303, ou 303 See Other, é o código de estado de resposta HTTP que realiza o redirecionamento de aplicações web para um novo URI, especialmente após um HTTP POST ter sido realizado, o qual consta a partir do RFC 2616 (HTTP 1.1).
De acordo com a RFC 7231, que torna a RFC 2616 obsoleta, "Uma resposta 303 a um pedido GET indica que o servidor de origem não tem uma representação do recurso objetivado que pode ser transferido pelo servidor sobre o HTTP. No entanto, o valor do campo Location (localização) refere-se a um recurso que é descritivo do recurso objetivado, de modo que fazer um pedido de recuperação daquele outro recurso pode resultar em uma representação que é útil para os destinatários sem implicar que representa o recurso de destino original ".
Este código de estado deve ser usado com o cabeçalho de localização. Se um servidor responde a um POST ou outra requisição não-idempotente com uma resposta 303 Veja Outro e um valor para o cabeçalho de localização, é esperado que o cliente obtenha o recurso mencionado no cabeçalho de localização usando o método GET. Para desencadear uma requisição ao recurso objetivado, utilizando o mesmo método, é esperado que o servidor forneça uma resposta 307 Redirecionamento Temporário.
Utilização
[editar | editar código-fonte]O código de estado 303 tem sido proposto como uma forma de responder a uma requisição de URI que identifica um objeto do mundo real de acordo com a teoria de Web Semântica (o outro sendo o uso de URIs de hash).[1] Por exemplo, se http://www.example.com/id/alice[ligação inativa] identifica uma pessoa, Alice, então não seria apropriado para um servidor responder a um pedido GET com o código de estado 200 OK, uma vez que o servidor não poderia entregar à própria Alice. Em vez disso o servidor emitiria uma resposta 303 Veja Outro que redirecionaria para um URI separado fornecendo uma descrição da pessoa Alice.
O código de estado 303 pode ser usado para outros fins. Por exemplo, quando constrói-se uma API web RESTful que precisa retornar ao chamador imediatamente, mas continuar a executar de forma assíncrona (como uma conversão de imagem de vida longa), a API web pode fornecer um URI de verificação do estado que permite que o cliente original que solicitou a conversão verifique o estado da conversão. Esta API web de verificação de estado deve retornar 303 Veja Outro para o chamador quando a tarefa estiver concluída, juntamente com um URI do qual recupera-se o resultado no campo Localização do cabeçalho HTTP.[2]
Exemplos
[editar | editar código-fonte]Requisição de cliente:
POST / HTTP/1.1 Host: www.exemplo.com
Resposta do servidor:
HTTP/1.1 303 See Other Location: http://exemplo.org/outro
Ver também
[editar | editar código-fonte]- RFC 1945 (HTTP 1.0)
- RFC 7231 (HTTP 1.1)
- Hypertext Transfer Protocol
- Lista de códigos de estado HTTP
- Post/Redirect/Get
Referências
- ↑ Cool URIs for the Semantic Web, seção 4
- ↑ Subbu Allamaraju. RESTful Web Services Cookbook: Solutions for Improving Scalability and Simplicity. O'Reilly Media, 2010, p. 20.