Categorias
Artigos Desenvolvimento web

Códigos de status HTTP

HTTP (Hypertext Transfer Protocol ou protocolo de transferência de hipertexto) é a principal forma de transferência de dados entre dispositivos conectados em uma rede.

A tabela a seguir resume as faixas de códigos descritas em Sayer et al. (2002) e no artigo “Códigos de status de respostas HTTP” do MDN web docs (2022).

Faixa de códigoDefinição
100-199Informacional
200-299Sucesso
300-399Redirecionamentos
400-499Erro no cliente
500-599Erro no servidor
Faixas de códigos de status de respostas HTTP.

100. Códigos Informacionais

CódigoDescrição
100 ContinueEssa resposta provisória indica que tudo ocorreu bem até agora e que o cliente deve continuar com a requisição ou ignorar se já concluiu o que gostaria.
101 Switching ProtocolEsse código é enviado em resposta a um cabeçalho de solicitação Upgrade (en-US) pelo cliente, e indica o protocolo a que o servidor está alternando.
102 Processing (WebDAV / en-US)Este código indica que o servidor recebeu e está processando a requisição, mas nenhuma resposta está disponível ainda.
103 Early HintsEste código tem principalmente o objetivo de ser utilizado com o cabeçalho Link, indicando que o agente deve iniciar a pré-carregar (en-US) recursos enquanto o servidor prepara uma resposta.
Códigos informacionais. Fonte: MDN web docs. Códigos de status de respostas HTTP. Disponível em https://developer.mozilla.org/pt-BR/docs/Web/HTTP/Status. Acesso em 30 de abril de 2022.

200. Códigos de Sucesso

CódigoDescrição
200 OKEstas requisição foi bem sucedida. O significado do sucesso varia de acordo com o método HTTP:
201 CreatedA requisição foi bem sucedida e um novo recurso foi criado como resultado. Esta é uma tipica resposta enviada após uma requisição POST.
202 AcceptedA requisição foi recebida mas nenhuma ação foi tomada sobre ela. Isto é uma requisição não-comprometedora, o que significa que não há nenhuma maneira no HTTP para enviar uma resposta assíncrona indicando o resultado do processamento da solicitação. Isto é indicado para casos onde outro processo ou servidor lida com a requisição, ou para processamento em lote.
203 Non-Authoritative InformationEsse código de resposta significa que o conjunto de meta-informações retornadas não é o conjunto exato disponível no servidor de origem, mas coletado de uma cópia local ou de terceiros. Exceto essa condição, a resposta de 200 OK deve ser preferida em vez dessa resposta.
204 No ContentNã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.
205 Reset ContentEsta requisição é enviada após realizanda a solicitação para informar ao user agent redefinir a visualização do documento que enviou essa solicitação.
206 Partial ContentEsta resposta é usada por causa do cabeçalho de intervalo enviado pelo cliente para separar o download em vários fluxos.
207 Multi-Status (WebDAV (en-US))Uma resposta Multi-Status transmite informações sobre vários recursos em situações em que vários códigos de status podem ser apropriados.
208 Multi-Status (WebDAV (en-US))Usado dentro de um elemento de resposta <dav:propstat> para evitar enumerar os membros internos de várias ligações à mesma coleção repetidamente.
226 IM Used (HTTP Delta encoding)O servidor cumpriu uma solicitação GET para o recurso e a resposta é uma representação do resultado de uma ou mais manipulações de instância aplicadas à instância atual.
Códigos de respostas bem-sucedidas. Fonte: MDN web docs. Códigos de status de respostas HTTP. Disponível em https://developer.mozilla.org/pt-BR/docs/Web/HTTP/Status. Acesso em 30 de abril de 2022.

300. Códigos de Redirecionamentos

CódigoDescrição
300 Multiple ChoiceA requisição tem mais de uma resposta possível. User-agent ou o user deve escolher uma delas. Não há maneira padrão para escolher uma das respostas.
301 Moved PermanentlyEsse código de resposta significa que a URI do recurso requerido mudou. Provavelmente, a nova URI será especificada na resposta.
302 FoundEsse 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.
303 See OtherO servidor manda essa resposta para instruir ao cliente buscar o recurso requisitado em outra URI com uma requisição GET.
304 Not ModifiedEssa resposta é usada para questões de cache. Diz ao cliente que a resposta não foi modificada. Portanto, o cliente pode usar a mesma versão em cache da resposta.
305 Use Proxy DeprecatedFoi definida em uma versão anterior da especificação HTTP para indicar que uma resposta deve ser acessada por um proxy. Foi depreciada por questões de segurança em respeito a configuração em banda de um proxy.
306 unused DeprecatedEsse código de resposta não é mais utilizado, encontra-se reservado. Foi usado numa versão anterior da especificação HTTP 1.1.
307 Temporary RedirectO servidor mandou essa resposta direcionando o cliente a buscar o recurso requisitado em outra URI com o mesmo método que foi utilizado na requisição original. Tem a mesma semântica do código 302 Found, com a exceção de que o user-agent não deve mudar o método HTTP utilizado: se um POST foi utilizado na primeira requisição, um POST deve ser utilizado na segunda.
308 Permanent RedirectEsse código significa que o recurso agora está permanentemente localizado em outra URI, especificada pelo cabeçalho de resposta Location. Tem a mesma semântica do código de resposta HTTP 301 Moved Permanently  com a exceção de que o user-agent não deve mudar o método HTTP utilizado: se um POST foi utilizado na primeira requisição, um POST deve ser utilizado na segunda.
Códigos de redirecionamentos. Fonte: MDN web docs. Códigos de status de respostas HTTP. Disponível em https://developer.mozilla.org/pt-BR/docs/Web/HTTP/Status. Acesso em 30 de abril de 2022.

400. Códigos de Erro no cliente

CódigoDescrição
400 Bad RequestEssa resposta significa que o servidor não entendeu a requisição pois está com uma sintaxe inválida.
401 UnauthorizedEmbora o padrão HTTP especifique “unauthorized”, semanticamente, essa resposta significa “unauthenticated”. Ou seja, o cliente deve se autenticar para obter a resposta solicitada.
402 Payment Required ExperimentalEste código de resposta está reservado para uso futuro. O objetivo inicial da criação deste código era usá-lo para sistemas digitais de pagamento porém ele não está sendo usado atualmente.
403 ForbiddenO cliente não tem direitos de acesso ao conteúdo portanto o servidor está rejeitando dar a resposta. Diferente do código 401, aqui a identidade do cliente é conhecida.
404 Not FoundO servidor não pode encontrar o recurso solicitado. Este código de resposta talvez seja o mais famoso devido à frequência com que acontece na web.
405 Method Not AllowedO método de solicitação é conhecido pelo servidor, mas foi desativado e não pode ser usado. Os dois métodos obrigatórios, GET e HEAD, nunca devem ser desabilitados e não devem retornar este código de erro.
406 Not AcceptableEssa resposta é enviada quando o servidor da Web após realizar a negociação de conteúdo orientada pelo servidor, não encontra nenhum conteúdo seguindo os critérios fornecidos pelo agente do usuário.
407 Proxy Authentication RequiredSemelhante ao 401 porem é necessário que a autenticação seja feita por um proxy.
408 Request TimeoutEsta resposta é enviada por alguns servidores em uma conexão ociosa, mesmo sem qualquer requisição prévia pelo cliente. Ela significa que o servidor gostaria de derrubar esta conexão em desuso. Esta resposta é muito usada já que alguns navegadores, como Chrome, Firefox 27+, ou IE9, usam mecanismos HTTP de pré-conexão para acelerar a navegação. Note também que alguns servidores meramente derrubam a conexão sem enviar esta mensagem.
409 ConflictEsta resposta será enviada quando uma requisição conflitar com o estado atual do servidor.
410 GoneEsta resposta será enviada quando o conteúdo requisitado foi permanentemente deletado do servidor, sem nenhum endereço de redirecionamento. É experado que clientes removam seus caches e links para o recurso. A especificação HTTP espera que este código de status seja usado para “serviços promocionais de tempo limitado”. APIs não devem se sentir obrigadas a indicar que recursos foram removidos com este código de status.
411 Length RequiredO servidor rejeitou a requisição porque o campo Content-Length do cabeçalho não está definido e o servidor o requer.
412 Precondition FailedO cliente indicou nos seus cabeçalhos pré-condições que o servidor não atende.
413 Payload Too LargeA entidade requisição é maior do que os limites definidos pelo servidor; o servidor pode fechar a conexão ou retornar um campo de cabeçalho Retry-After.
414 URI Too LongA URI requisitada pelo cliente é maior do que o servidor aceita para interpretar.
415 Unsupported Media TypeO formato de mídia dos dados requisitados não é suportado pelo servidor, então o servidor rejeita a requisição.
416 Requested Range Not SatisfiableO trecho especificado pelo campo Range do cabeçalho na requisição não pode ser preenchido; é possível que o trecho esteja fora do tamanho dos dados da URI alvo.
417 Expectation FailedEste código de resposta significa que a expectativa indicada pelo campo Expect do cabeçalho da requisição não pode ser satisfeita pelo servidor.
418 I’m a teapotO servidor recusa a tentativa de coar café num bule de chá.
421 Misdirected RequestA requisição foi direcionada a um servidor inapto a produzir a resposta. Pode ser enviado por um servidor que não está configurado para produzir respostas para a combinação de esquema (“scheme”) e autoridade inclusas na URI da requisição.
422 Unprocessable Entity (WebDAV (en-US))A requisição está bem formada mas inabilitada para ser seguida devido a erros semânticos.
423 Locked (WebDAV (en-US))O recurso sendo acessado está travado.
424 Failed Dependency (WebDAV (en-US))A requisição falhou devido a falha em requisição prévia.
425 Too EarlyIndica que o servidor não está disposto a arriscar processar uma requisição que pode ser refeita.
426 Upgrade RequiredO servidor se recusa a executar a requisição usando o protocolo corrente mas estará pronto a fazê-lo após o cliente atualizar para um protocolo diferente. O servidor envia um cabeçalho Upgrade (en-US) numa resposta 426 para indicar o(s) protocolo(s) requeridos.
428 Precondition RequiredO servidor de origem requer que a resposta seja condicional. Feito para prevenir o problema da ‘atualização perdida’, onde um cliente pega o estado de um recurso (GET) , modifica-o, e o põe de volta no servidor (PUT), enquanto um terceiro modificou o estado no servidor, levando a um conflito.
429 Too Many RequestsO usuário enviou muitas requisições num dado tempo (“limitação de frequência”).
431 Request Header Fields Too LargeO servidor não quer processar a requisição porque os campos de cabeçalho são muito grandes. A requisição PODE ser submetida novemente depois de reduzir o tamanho dos campos de cabeçalho.
451 Unavailable For Legal ReasonsO usuário requisitou um recurso ilegal, tal como uma página censurada por um governo.
Códigos de erros no cliente. Fonte: MDN web docs. Códigos de status de respostas HTTP. Disponível em https://developer.mozilla.org/pt-BR/docs/Web/HTTP/Status. Acesso em 30 de abril de 2022.

500. Códigos de Erro no servidor

CódigoDescrição
500 Internal Server ErrorO servidor encontrou uma situação com a qual não sabe lidar.
501 Not ImplementedO 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 GatewayEsta 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 UnavailableO servidor não está pronto para manipular a requisição. Causas comuns são um servidor em manutenção ou sobrecarregado. Note que junto a esta resposta, uma página amigável explicando o problema deveria ser enviada. Estas respostas devem ser usadas para condições temporárias e o cabeçalho HTTP Retry-After: deverá, se possível, conter o tempo estimado para recuperação do serviço. O webmaster deve também tomar cuidado com os cabeçalhos relacionados com o cache que são enviados com esta resposta, já que estas respostas de condições temporárias normalmente não deveriam ser postas em cache.
504 Gateway TimeoutEsta resposta de erro é dada quando o servidor está atuando como um gateway e não obtém uma resposta a tempo.
505 HTTP Version Not SupportedA versão HTTP usada na requisição não é suportada pelo servidor.
506 Variant Also NegotiatesO servidor tem um erro de configuração interno: a negociação transparente de conteúdo para a requisição resulta em uma referência circular.
507 Insufficient StorageO servidor tem um erro interno de configuração: o recurso variante escolhido está configurado para entrar em negociação transparente de conteúdo com ele mesmo, e portanto não é uma ponta válida no processo de negociação.
508 Loop Detected (WebDAV (en-US))O servidor detectou um looping infinito ao processar a requisição.
510 Not ExtendedExigem-se extenções posteriores à requisição para o servidor atendê-la.
511 Network Authentication RequiredO código de status 511 indica que o cliente precisa se autenticar para ganhar acesso à rede.
Códigos de erros de servidor. Fonte: MDN web docs. Códigos de status de respostas HTTP. Disponível em https://developer.mozilla.org/pt-BR/docs/Web/HTTP/Status. Acesso em 30 de abril de 2022.

Referências

MDN web docs. Códigos de status de respostas HTTP. Disponível em https://developer.mozilla.org/pt-BR/docs/Web/HTTP/Status. Acesso em 30 de abril de 2022.

Sayer, M., Reddy, S., Gourley, D., Totty, B., Aggarwal, A. (2002). HTTP: The Definitive Guide. Alemanha: O’Reilly Media, Incorporated.

Por Diego Mariano

Doutor em Bioinformática pela Universidade Federal de Minas Gerais com atuação na área de ciência de dados e aprendizado de máquina aplicados ao aperfeiçoamento de enzimas usadas na produção de biocombustíveis. Mestre em Bioinformática, também pela UFMG, atuando na área de desenvolvimento de sistemas Web para montagem de genomas. Atualmente realiza estágio pós-doutoral no Departamento de Ciência da Computação da UFMG com foco em desenvolvimento de sistemas Web para Bioinformática, análise exploratória e visualização de dados. Tem conhecimentos nas linguagens: PHP, JavaScript, Python, R, Perl, HTML, CSS e SQL.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

error

Compartilhe este post!

Facebook
YouTube
LinkedIn
Instagram