Códigos de status de respostas HTTP

Você conhece os códigos de status de resposta do protocolo HTTP? Hoje vamos desmistificar cada um deles.

Talvez não seja de vital importância ser o Google dos códigos de status de resposta do protocolo HTTP, mas é muito importante conhecer os principais e as diferenças sutis entre eles.

É muito importante ser coerente no uso dos códigos para que o cliente não se enrole na mensageiria e consiga gerenciar erros de uma forma fácil e padronizada.

Nesse artigo vamos tratar apenas de alguns dos muitos códigos das 5 classes, esses são os mais utilizados nos sistemas atuais. É recomendado sempre que você use o mais adequado para situação. Nada de colar 400 e 500 em tudo, ok?

1xx: Informacional

Vai ser muito raro encontrar um código desse. Eles são usados para informação.

100 Continue: Uma resposta provisória para indicar que tudo ocorreu bem até então e que o cliente pode continuar com a requisição.

101 Switching Protocol: Esse código é enviado em resposta a um cabeçalho de solicitação Upgrade pelo cliente, e indica o protocolo a que o servidor está alternando.

102 Processing (WebDAV): Este código indica que o servidor recebeu e está processando a requisição, mas nenhuma resposta está disponível ainda.

103 Early Hints: Este código tem principalmente o objetivo de ser utilizado com o cabeçalho Link, indicando que o agente deve pré-carregar recursos enquanto o servidor prepara uma resposta.

2xx: Sucesso

Esse é o que sempre esperamos receber! Significa que deu tudo certo com sua solicitação.

200 OK: Requisição foi bem sucedida. O significado do sucesso varia de acordo com o método HTTP.

201 Created: A requisição foi bem sucedida e um novo recurso foi criado como resultado. Esta é uma típica resposta enviada após uma requisição POST.

204 No Content: Não há conteúdo para enviar para esta solicitação, mas os cabeçalhos podem ser úteis. O user-agent pode atualizar seus cabeçalhos em cache para este recurso com os novos.

206 Partial Content: Esta resposta é usada por causa do cabeçalho de intervalo enviado pelo cliente para separar o download em vários fluxos.

3xx: Redirecionamento

Aqui o cliente vai precisar fazer ações extras para completar o pedido e redirecionar a requisição.

301 Moved Permanently: Esse código de resposta significa que a URI do recurso requerido mudou. Provavelmente, a nova URI será especificada na resposta.

302 Found: Esse código de resposta significa que a URI do recurso requerido foi mudada temporariamente. Novas mudanças na URI poderão ser feitas no futuro. Portanto, a mesma URI deve ser usada pelo cliente em requisições futuras.

304 Not Modified: Essa resposta é usada para questões da cache. Diz ao cliente que a resposta não foi modificada. Portanto, o cliente pode usar a mesma versão em cache de resposta.

4xx: Erro do Cliente

Essa classe é provavelmente BIOS rsrs. Os códigos devem ser apresentados quando o cliente parecer ter cometido um erro.

400 Bad Request: Essa resposta significa que o servidor não entendeu a requisição pois está com uma sintaxe inválida.

401 Unauthorized: Embora o padrão HTTP especifique "unauthorized", semanticamente, essa resposta significa "unauthenticated". Ou seja, o cliente deve se autenticar para obter a resposta solicitada.

403 Forbidden: O cliente não tem direitos de acesso ao conteúdo portanto o servidor esta rejeitando dar a resposta. Diferente do código 401, aqui a identidade do cliente é conhecida.

404 Not Found: O recurso requisitado não foi encontrado, mas pode ser disponibilizado novamente no futuro.

406 Not Acceptable: O recurso solicitado é apenas capaz de gerar conteúdo não aceitáveis de acordo com os cabeçalhos Accept enviados na solicitação.

5xx: Erro do Cliente

Aqui deu BO, bateu fofo. Essa classe informa que o erro aconteceu do lado do servidor.

500 Internal Server Error: Indica um erro do servidor ao processar a solicitação.

501 Not Implemented: O método da requisição não é suportado pelo servidor e não pode ser manipulado. Os únicos métodos exigidos que servidores suportem (e portanto não devem retornar este código) são GET e HEAD.

502 Bad Gateway: Esta resposta de erro significa que o servidor, ao trabalhar como um gateway a fim de obter uma resposta necessária para manipular a requisição, obteve uma resposta inválida.

503 Service Unavailable: O servidor não está pronto para manipular a requisição. Causas comuns são um servidor em manutenção ou sobrecarregado.

A Saideira

Essa publicação foi inspirada numa publicação do pessoal da Codar.me. Gosto muito do conteúdo deles, podem acompanhar!

Comentários