O código de status HTTP indica para o cliente qual a condição atual sobre o processamento de sua requisição.


Guia do artigo:

Esses códigos são divididos em cinco grupos de acordo com seu intervalo de valores:

Informal

Indica que o servidor ainda está processando a requisição de alguma forma.

  • 100 Continue:Alguma parte inicial da requisição foi recebida pelo servidor e ainda não foi descartada. O cliente deve continuar enviando dados. Tão logo toda a requisição tenha sido recebida o servidor retornará alguma resposta.
  • 101 Switching Protocols: O servidor recebeu a requisição do cliente e deseja prosseguir, propondo uma troca no protocolo utilizado pelo cliente.
  • 102 Processing: O servidor aceitou completamente a requisição, mas ainda não completou seu processamento.

Success

A requisição foi completamente recebida e o servidor entregou ao cliente o recurso esperado.

  • 200 Ok:A requisição foi bem sucedida.
  • 201 Created: A requisição foi completamente processada pelo servidor e um ou mais recursos foram criados em decorrência disso.
  • 202 Accepted: A requisição foi recebida pelo servidor, mas ainda não foi completamente processada. Geralmente, o servidor responde com alguma forma do cliente acompanhar quando essa requisição será completamente processada.
  • 203 Non-authoritative Information: Indica sucesso no recebimento dos dados, mas que alguma meta informação na resposta não condiz com aquelas disponíveis no servidor.
  • 204 No Content: O servidor não possui conteúdo que possa ser adicionado a resposta, mas os cabeçalhos presentes podem ser úteis.
  • 205 Reset Content: Diz ao user-agent que este deve atualizar a página, reiniciar o estado de um canvas ou algo que forneça ao cliente uma nova representação do documento apresentado.
  • 206 Partial Content: O servidor forneceu satisfatoriamente uma parte do recurso requisitado pelo cliente, de acordo com o valor determinado pelo header Range.
  • 207 Multi-Status: Fornece o código de estado de múltiplos recursos sendo acessados, quando disponíveis.
  • 208 Already Reported: DAV (distributed authoring and versioning) é uma extensão do HTTP usada na transferência de arquivos. Quando múltiplos elementos são acessados dessa forma esse status pode ser utilizado para enumerar o estado dos elementos subsequentes após 200 Ok ter sido utilizado para o primeiro.
  • 226 Im Used: O servidor atendeu a requisição feita via GET, mas uma representação atual do recurso que está sendo acessado pode não estar disponível. Em lugar, o servidor envia uma instância manipulada do recurso que pode ou não corresponder ao seu estado atual.

Redirection

A requisição foi recebida, mas o servidor precisou realizar algum tipo de redirecionamento.

  • 300 Multiple Choices:Mais de uma representação para o recurso solicitado foi encontrada, cabendo ao cliente identificar qual deve ser utilizado a partir de uma lista de identificadores ou informações sobre o recurso.
  • 301 Moved Permanently: O recurso está disponível em uma nova URI e deve ser acessado por ela em novas requisições.
  • 302 Found: O recurso está disponível em uma nova URL, mas isso pode ser temporário.
  • 303 See Other: O servidor está redirecionando o user-agent para um novo recurso que proverá, indiretamente, a representação do recurso solicitado.
  • 304 Not Modified: Não há razão para o servidor enviar uma nova representação do recurso solicitado pelo cliente, pois a cópia que ele possui ainda é válida.
  • 305 Use Proxy: Esse header foi removido em especificações atuais por preocupações com segurança.
  • 307 Temporary Redirect: O recurso foi movido temporariamente para uma outra URI, mas o cliente deve continuar utilizando o mesmo método HTTP se este cria um redirecionamento automático para esta nova URI.
  • 308 Permanent Redirect: O recurso foi movido para uma nova URI, geralmente indicada no header Location. O cliente deve utilizar esse endereço em suas próximas requisições.

Client Erros

Códigos nesse range geralmente indicam um problema nas informações enviadas pelo cliente.

  • 400 Bad Request:O servidor não vai processar a requisição por um erro nas informações enviadas pelo cliente. Uma URL mal formada ou dados inválidos são alguns exemplos.
  • 401 Unauthorized: O cliente não forneceu as credenciais corretas para acessar o recurso.
  • 402 Payment Required: Esse código ainda não foi implementado e está reservado para uso em uma próxima especificação.
  • 403 Forbidden: O servidor recebeu a requisição, mas se negou a autorizá-la.
  • 404 Not Found: O servidor não encontrou uma representação atual do recurso solicitado.
  • 405 Method Not Allowed: O método utilizado pelo cliente é inteligível pelo servidor, mas não pode ser utilizado para o recurso solicitado.
  • 406 Not Acceptable: O recurso solicitado não possui uma representação que possa ser aceita pelo cliente. Nesses casos podemos avaliar a necessidade de alterar os valores dos headers Accept, Accept-Charset, Accept-Encoding e Accept-Language.
  • 407 Proxy Authentication Required: Similar ao código 401 Unauthorized, mas indica que o cliente deve se autenticar para utilizar um proxy.
  • 408 Request Timeout: O servidor não recebeu completamente a requisição no tempo esperado.
  • 409 Conflict: Esse código é utilizado quando há um conflito entre os dados enviados pelo cliente e a representação atual do recurso solicitado. Geralmente esse código é utilizado quando o cliente pode resolver o problema e enviar uma nova requisição.
  • 410 Gone: O recurso não está mais disponível no servidor e essa condição tende a ser permanente.
  • 411 Length Required: O servidor vai se recusar a atender a requisição até que o header Content-Length seja fornecido.
  • 412 Precondition Failed: Um ou mais condições fornecidas nos cabeçalhos da requisição foram avaliadas como falsas quando testadas pelo servidor.
  • 413 Payload Too Large: Um ou mais metadados contidos na requisição é maior que a capacidade de processamento do servidor.
  • 414 Request-URI Too Long: O request-target, derivado a URI utilizada na requisição, é maior do que o servidor pode interpretar.
  • 415 Unsupported Media Type: O servidor se recusa a processar a requisição devido ao formato errado dos metadados adicionados a ela. Geralmente corrigir o valor dos headers Content-Type ou Content-Encoding pode corrigir o problema.
  • 416 Requested Range Not Satisfiable: Os valores utilizados no header Range ultrapassam ou são inválidos para o recurso solicitado.
  • 417 Expectation Failed: O valor do header Expect não pode ser encontrado por pelo menos um dos servidores.
  • 418 I'm a teapot: Esse código é na verdade uma piada. Significa que qualquer tentativa de fazer café com um bule de chá deve resultar neste erro :)
  • 421 Misdirected Request: A requisição foi enviada para um servidor que não é capaz de gerar respostas. Isso pode ser condicional dados os valores utilizadas para compor a URI atual.
  • 422 Unprocessable Entity: O servidor reconhece o conteúdo enviado, não podendo responder com um código 415 Unsupported Media Type, compreende a sintaxe dos dados, o que torna 400 Bad Request inapropriado, mas não pode processar esses dados ou dar informações sobre o erro.
  • 423 Locked: O recurso não pode ser acessado por estar bloqueado.
  • 424 Failed Dependency: O método não pode ser aplicado ao recurso, pois depende que uma outra ação tenha sido completada anteriormente e essa ação falhou.
  • 426 Upgrade Required: O servidor se recusou a processar a requisição porque o protocolo deveria ter sido alterado pelo cliente, de acordo com as instruções fornecidas anteriormente.
  • 428 Precondition Required: O servidor requer que a requisição seja condicional. Geralmente é usado para evitar que um recurso seja obtido via GET, modificado e atualizado via PUT, sendo que um outro agente o modificou neste intervalo.
  • 429 Too Many Requests: O cliente enviou mais requisições que o permitido em um determinado intervalo de tempo.
  • 431 Request Header Fields Too Large: O servidor não pode processar a requisição porque seus cabeçalhos têm valores longos demais. A requisição deve ser refeita após reduzir o tamanho desses campos.
  • 444 Connection Closed Without Response: Comumente utilizado para negar requisições maliciosas ou mal formadas.
  • 451 Unavailable For Legal Reasons: O conteúdo acessado foi removido do ar ou está inacessível devido a uma ação jurídica.
  • 499 Client Closed Request: O cliente encerrou a requisição enquanto o servidor ainda estava processando-a.

Server Error

Os códigos nesse intervalo correspondem a erros relacionados ao servidor.

  • 500 Internal Server Error:O servidor encontrou um condição inesperada que o impediu de atender completamente a requisição.
  • 501 Not Implemented: O servidor não dispõe da funcionalidade requerida para atender a requisição.
  • 502 Bad Gateway: O servidor, agindo como um gateway ou proxy, recebeu uma resposta inválida de um outro servidor acessado por ele para atender a requisição.
  • 503 Service Unavailable: O servidor não pode processar a requisição devido a uma condição de manutenção ou sobrecarga temporária.
  • 504 Gateway Timeout: O servidor precisa acessar um outro para atender a requisição, mas não obteve uma resposta no tempo estipulado.
  • 505 HTTP Version Not Supported: O servidor não suporta a versão do HTTP utilizada na requisição.
  • 506 Variant Also Negotiates: O servidor possui uma configuração interna conflitante que o impede de fornecer o conteúdo requisitado pelo cliente.
  • 507 Insufficient Storage: O método utilizado não pode ser aplicado sobre o recurso no servidor porque esse não dispõe de armazenamento suficiente.
  • 508 Loop Detected: O servidor encontrou um ciclo infinito de execução que o levou ao encerramento do processamento corrente.
  • 510 Not Extended: A regra de acesso ao recurso não foi encontrado na requisição. Geralmente o servidor responde com as informações necessários para o cliente realizar uma nova requisição com sucesso.
  • 511 Network Authentication Required: O cliente precisa se autenticar para ganhar acesso a rede.
  • 599 Network Connect Timeout Error: Não faz parte da especificação atual, mas é utilizado por proxies para indicar expiração no tempo de resposta.