Na era da conectividade digital, a comunicação entre clientes e servidores é essencial para o funcionamento de sistemas e aplicações na internet. Essa troca de dados é realizada por meio do protocolo HTTP, que garante a troca de informações entre as partes envolvidas.
Em cada requisição feita por um cliente, o servidor responde com um código numérico conhecido como Status Code, que tem como objetivo informar se a operação foi realizada com sucesso ou se encontrou algum erro. Esses códigos são fundamentais para desenvolvedores e administradores de sistemas, pois fornecem informações claras sobre o estado das requisições, ajudando a identificar problemas e manter a fluidez das operações.
Neste texto, iremos conhecer as diferentes categorias de Status Code e seus principais exemplos, detalhando a função de cada um na comunicação entre cliente e servidor.
1 – Entendendo o que é um Status Code
A internet é baseada na troca constante de dados entre clientes e servidores. Nos dias atuais, praticamente, todos os sistemas e aplicações que usamos estão conectados à internet e comunicam-se com serviços remotos localizados em servidores web. Essa comunicação ocorre através do protocolo HTTP e é nesse cenário que surgem os Status Code.
Os Status Code, ou códigos de status HTTP, são códigos numéricos retornados por servidores web em resposta para cada requisição feita pelos usuários (ou clientes). Esses códigos indicam se uma solicitação HTTP foi bem-sucedida ou não.
Os códigos são compostos por três dígitos:
– O primeiro dígito varia de 1 a 5 e indica o tipo de status;
– O segundo e terceiro dígitos referem-se aos status contemplados no intervalo do primeiro dígito;
Os Status Code são divididos em cinco categorias principais, as quais representam classes de respostas do servidor, organizadas da seguinte forma:
Código | Tipo | Explicação |
100 – 199 | Respostas informativas (Informal) | Requisição em processamento pelo servidor |
200 – 299 | Respostas bem-sucedidas (Success) | Requisição processada com sucesso pelo servidor |
300 – 399 | Mensagens de redirecionamento (Redirection) | Requisição precisa ser redirecionada para ser concluída |
400 – 499 | Respostas de erro do cliente (Client Error) | Requisição não pode ser concluída ou possui erro de sintaxe |
500 – 599 | Respostas de erro do servidor (Server Error) | Requisição não pode ser concluída por falha no lado do servidor |
2 – Lista de Status Code
Abaixo serão listados os principais Status Code retornados em requisições HTTP:
Respostas informativas
100 – Continue: indica ao cliente que o cabeçalho (header) da requisição foi recebido e ele deve continuar a requisição enviando o corpo (body) ou ignorar a resposta se a requisição já estiver concluída. Esse status é útil para determinar se o servidor está disposto a aceitar a requisição antes que o seu corpo (body) seja enviado, tornando o processo mais eficiente.
101 – Switching Protocols: o servidor está mudando os protocolos conforme solicitado pelo cliente como, por exemplo, mudar para uma versão mais recente do HTTP.
102 – Processing: este código indica que o servidor recebeu e está processando a solicitação, mas ainda não tem uma resposta pronta.
103 – Early Hints: indica que o cliente receberá alguns campos de cabeçalho de solicitação antes da mensagem HTTP final, com instruções para que o agente de usuário pré-carregue recursos enquanto aguarda a conclusão do processo.
Respostas bem-sucedidas
200 – OK: a requisição foi bem-sucedida e o servidor retornou a resposta esperada.
201 – Created: requisição bem-sucedida e um novo recurso foi criado como resultado. Geralmente, retornado em métodos PUT ou POST.
202 – Accepted: indica que a solicitação foi recebida pelo servidor, mas não pode ser atendida. Esse retorno ocorre nos casos em que outro processo ou servidor lida com a requisição e para processamento em lote. É um retorno sem compromisso, pois não é possível enviar, posteriormente, uma resposta HHTP assíncrona indicando o resultado da solicitação.
204 – No Content: requisição bem-sucedida, mas o servidor não retornou nenhum conteúdo. Nesse caso, não há corpo no retorno, mas os cabeçalhos podem ter alguma utilidade.
206 – Partial Content: esse código é retornado quando o cabeçalho Range é enviado pelo cliente solicitando apenas parte de um recurso. É útil nos casos em que é necessário fazer um download fracionado de um ou mais recursos.
Mensagens de redirecionamento
300 – Multiple Choices: esse status indica que existe mais de uma possível resposta para a requisição, cabendo ao agente do usuário escolher entre elas.
301 – Moved Permanently: indica que o recurso solicitado foi movido permanentemente para uma nova URL. Geralmente, retorna a nova URL no cabeçalho da resposta no item Location.
302 Found: indica que o recurso solicitado foi alocado, temporariamente, em uma URL diferente.
Respostas de erro do cliente
400 – Bad Request: a requisição não pode ser processada devido a algum erro no cliente. Pode ser causado por uma sintaxe incorreta, cookies inválidos ou cache DNS não sincronizado.
401 – Unauthorized: a requisição precisa de autenticação para ser completada. Ocorre quando o cliente deve se autenticar para obter a resposta solicitada e não realiza essa etapa corretamente.
403 – Forbidden: o servidor entendeu a solicitação, mas não pode autorizá-la. Semelhante ao status 401, este indica uma recusa na autorização da requisição mesmo com as credenciais válidas. Geralmente, a causa desse status está relacionada com limitações de permissão do usuário como, por exemplo, tentar acessar um recurso de edição com uma permissão de visualização.
404 – Not Found: indica que a requisição falhou porque o servidor não conseguiu localizar o recurso solicitado. Esse erro está associado a URLs digitadas incorretamente, problemas de armazenamento em cache e propagação de domínio incompleta. Pode ser causado também por uma remoção, temporária ou permanente, do recurso no lado do servidor.
405 – Method Not Allowed: indica que o método HTTP da requisição é reconhecido pelo servidor, porém, não está disponível para o recurso solicitado.
Respostas de erro do servidor
500 – Internal Server Error: ocorreu um erro inesperado no servidor e a requisição não pode ser atendida no momento.
501 – Not Implemented: o método HTTP da requisição não é reconhecido pelo servidor. Esse erro é o oposto do status 405, no qual, o método é reconhecido pelo servidor, mas não está disponível para o recurso solicitado.
502 – Bad Gateway: o servidor, ao atuar como um gateway ou proxy, recebeu uma resposta inválida do servidor upstream e não pode atender a requisição.
503 – Service Unavailable: o servidor está indisponível no momento. Esse erro indica um problema temporário no lado do servidor, ocorrendo devido a manutenções ou sobrecargas.
Esses são os códigos mais conhecidos e usados no dia a dia. Além deles, muitos outros códigos existem e podem ser retornados em uma requisição. Para conferir uma lista completa dos status code existentes, clique aqui para visualizar a documentação no MDN Web Docs.
Conclusão
Os Status Code são essenciais para monitorar e controlar a troca de informações na web, oferecendo transparência e eficiência na comunicação entre clientes e servidores. Cada código carrega consigo uma mensagem específica, indicando desde respostas informativas até erros críticos, seja do lado do cliente ou do servidor.
Compreender esses códigos é crucial para garantir a manutenção de sistemas e aplicações, permitindo diagnósticos rápidos e correções assertivas em eventuais falhas. Embora alguns códigos sejam mais comuns no dia a dia, há uma vasta gama de status que podem ser encontrados em diferentes cenários. Assim, conhecer e entender os Status Code é vital para o sucesso na gestão e desenvolvimento de aplicações conectadas à internet.
Espero que este artigo seja útil de alguma forma para você. Em caso de dúvidas, sugestões ou reclamações, fique à vontade para entrar em contato.
E se você quiser aprender mais sobre programação, acesse aqui a seção que tenho dedicada ao assunto.
Referências:
https://developer.mozilla.org/pt-BR/docs/Web/HTTP/Status
https://www.hostgator.com.br/blog/http-status-code-como-resolver/
https://www.hostinger.com.br/tutoriais/https-status
Fontes consultadas entre os dias 24/10/2024 e 27/10/2024
[…] deste assunto e quer aprender mais sobre o protocolo HTTP? Clicando aqui, você tem acesso ao artigo que escrevi sobre Status […]
[…] deste assunto e quer aprender mais sobre o protocolo HTTP? Clicando aqui, você tem acesso ao artigo que escrevi sobre Status […]