
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: