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: