37 - Status http

O protocolo HTTP (HyperText Transfer Protocol) é a base para a comunicação entre clientes e servidores na web. Toda vez que você acessa um site ou faz uma requisição para um servidor, uma comunicação HTTP ocorre entre o navegador (ou qualquer outro cliente) e o servidor da aplicação.

Quando o servidor recebe uma requisição, ele retorna uma resposta, que sempre inclui um código de status HTTP. Esse código de status indica o resultado da requisição, seja ela bem-sucedida ou se houve algum tipo de erro.

Os códigos de status HTTP são divididos em cinco categorias principais:

  • 1xx - Informativo: Indicam que a requisição foi recebida e o processo está em andamento.
  • 2xx - Sucesso: Indicam que a requisição foi bem-sucedida e o servidor processou a solicitação corretamente.
  • 3xx - Redirecionamento: Indicam que o cliente precisa fazer mais alguma ação para concluir a requisição, como seguir um redirecionamento.
  • 4xx - Erro do Cliente: Indicam que o erro ocorreu devido a algo errado na requisição do cliente.
  • 5xx - Erro do Servidor: Indicam que o servidor encontrou um erro ao tentar processar a requisição.

Códigos de Status HTTP

Abaixo está uma tabela com os principais códigos de status HTTP, incluindo suas descrições:

Código Categoria Descrição
100 Informativo Continue: O servidor recebeu a solicitação e o cliente pode continuar com a requisição.
101 Informativo Switching Protocols: O servidor está mudando o protocolo conforme solicitado pelo cliente.
102 Informativo Processing: O servidor recebeu a requisição, mas ainda está processando e não tem resposta final.
200 Sucesso OK: A requisição foi bem-sucedida e o servidor retornou a resposta desejada.
201 Sucesso Criado: A requisição foi bem-sucedida e resultou na criação de um recurso.
202 Sucesso Accepted: A requisição foi recebida, mas ainda não foi processada.
203 Sucesso Non-Authoritative Information: A requisição foi bem-sucedida, mas a resposta pode não ter a autoridade original do servidor.
204 Sucesso No Content: A requisição foi bem-sucedida, mas não há conteúdo para retornar.
205 Sucesso Reset Content: A requisição foi bem-sucedida, mas o cliente deve redefinir o documento visualizado.
206 Sucesso Partial Content: O servidor está retornando parte do conteúdo solicitado, geralmente em resposta a um pedido de intervalo de dados.
300 Redirecionamento Multiple Choices: A requisição pode ser atendida por múltiplos recursos. O cliente deve escolher um deles.
301 Redirecionamento Moved Permanently: O recurso solicitado foi movido permanentemente para uma nova URL.
302 Redirecionamento Found: O recurso solicitado foi encontrado em outra URL, mas a mudança é temporária.
303 Redirecionamento See Other: O cliente deve acessar o recurso em uma URL diferente.
304 Redirecionamento Not Modified: O recurso solicitado não foi modificado desde a última requisição.
305 Redirecionamento Use Proxy: O cliente deve acessar o recurso através de um proxy especificado.
307 Redirecionamento Temporary Redirect: O recurso solicitado foi temporariamente movido para outra URL.
400 Erro do Cliente Bad Request: A requisição do cliente contém sintaxe inválida ou está malformada.
401 Erro do Cliente Unauthorized: O cliente deve se autenticar para acessar o recurso solicitado.
402 Erro do Cliente Payment Required: Este código é reservado para uso futuro. Não é amplamente utilizado.
403 Erro do Cliente Forbidden: O servidor entendeu a requisição, mas o cliente não tem permissão para acessá-la.
404 Erro do Cliente Not Found: O servidor não conseguiu encontrar o recurso solicitado.
405 Erro do Cliente Method Not Allowed: O método HTTP utilizado não é permitido para o recurso solicitado.
406 Erro do Cliente Not Acceptable: O servidor não pode gerar uma resposta que seja aceitável para o cliente, de acordo com os cabeçalhos "Accept" da requisição.
407 Erro do Cliente Proxy Authentication Required: O cliente deve se autenticar com o proxy.
408 Erro do Cliente Request Timeout: O servidor demorou muito para processar a requisição e o cliente deve tentar novamente.
409 Erro do Cliente Conflict: A requisição não pode ser processada devido a um conflito com o estado atual do recurso.
410 Erro do Cliente Gone: O recurso solicitado não está mais disponível e não será disponibilizado no futuro.
411 Erro do Cliente Length Required: O servidor exige que a requisição contenha o cabeçalho "Content-Length".
412 Erro do Cliente Precondition Failed: Uma pré-condição dada pela requisição falhou.
413 Erro do Cliente Payload Too Large: O corpo da requisição é maior que o servidor está disposto ou pode processar.
414 Erro do Cliente URI Too Long: O URI da requisição é maior que o servidor pode ou quer processar.
415 Erro do Cliente Unsupported Media Type: O tipo de mídia enviado na requisição não é suportado pelo servidor.
416 Erro do Cliente Range Not Satisfiable: O servidor não pode atender à requisição de intervalo especificado pelo cliente.
417 Erro do Cliente Expectation Failed: A expectativa indicada no cabeçalho "Expect" não pôde ser atendida pelo servidor.
418 Erro do Cliente I'm a teapot: Um código de erro humorístico, como parte da especificação "RFC 2324" (não utilizado em produções reais).
421 Erro do Cliente Misdirected Request: A requisição foi direcionada para um servidor incorreto.
422 Erro do Cliente Unprocessable Entity: A requisição é bem formada, mas não pode ser processada devido a erros de semântica.
423 Erro do Cliente Locked: O recurso solicitado está bloqueado e não pode ser acessado.
424 Erro do Cliente Failed Dependency: A requisição falhou devido a falhas de dependências.
425 Erro do Cliente Too Early: O servidor não pode processar a requisição devido a condições precoces.
426 Erro do Cliente Upgrade Required: O cliente deve atualizar para um protocolo diferente, conforme indicado no cabeçalho "Upgrade".
427 Erro do Cliente Precondition Required: O servidor exige uma pré-condição específica.
428 Erro do Cliente Too Many Requests: O cliente enviou muitas requisições em um curto período de tempo.
429 Erro do Cliente Too Many Requests: O cliente enviou muitas requisições em um curto período de tempo (similar ao 428).
431 Erro do Cliente Request Header Fields Too Large: O servidor não pode processar a requisição devido ao tamanho excessivo dos campos de cabeçalho.
500 Erro do Servidor Internal Server Error: O servidor encontrou um erro inesperado ao tentar processar a requisição.
501 Erro do Servidor Not Implemented: O servidor não reconhece o método da requisição ou não pode processá-lo.
502 Erro do Servidor Bad Gateway: O servidor recebeu uma resposta inválida ao agir como gateway ou proxy.
503 Erro do Servidor Service Unavailable: O servidor não está disponível devido a sobrecarga ou manutenção.
504 Erro do Servidor Gateway Timeout: O servidor não recebeu uma resposta a tempo de um servidor upstream.
505 Erro do Servidor HTTP Version Not Supported: O servidor não suporta a versão HTTP usada na requisição.

Conclusão

Entender os códigos de status HTTP é fundamental para o desenvolvimento de APIs e aplicações web. Esses códigos ajudam os desenvolvedores a diagnosticarem problemas, entenderem como a aplicação está se comportando e oferecem informações essenciais sobre como lidar com os diferentes tipos de resposta.

Clique aqui para se tornar membro do canal

Abaixo segue nossa aula no YouTube: