O protocolo Hypertext Transfer Protocol - HTTP versão 1.1 — bem como a versão anterior 1.0, ainda em uso por muitos servidores Web — define, no cabeçalho da resposta correspondente a uma requisição HTTP, o código de retorno.
O elemento Status-Code é um código de inteiro de 3 dígitos do resultado da tentativa do servidor em entender e processar a requisição (request). Estes códigos são definidos em detalhes na seção 10 da RFC 2616. A Reason-Phrase visa fornecer uma breve descrição textual do Status-Code. O Status-Code é voltado para a interpretação automatizada (programa cliente) e a Reason-Phrase é voltada para o usuário humano. O cliente HTTP não precisa necessariamente examinar ou exibir a Reason-Phrase.
O primeiro dígito do Status-Code define a classe da resposta. Os 2 dígitos finais definem um significado específico. Existem cinco valores (classes) para o primeiro dígito:
1xx: Informacional
Requisição recebida, processo continua;
2xx: Sucesso
A ação foi recebida, compreendida e aceita com sucesso;
3xx: Redirecionamento (Transitório)
Deve haver ação consecutiva para que a requisição seja completada;
4xx: Erro Cliente
A requisição enviada pelo cliente contém sintaxe errada ou não pode ser atendida;
5xx: Erro Servidor
O servidor falhou em atender requisição aparentemente válida. Erros e exceções em programas CGI e servidores de aplicação para Web (Java, .NET, PHP etc.) são casos típicos de erros da série 500.
Os valores individuais dos códigos de estado numéricos definidos pelo HTTP/1.1 e as frases de significado correspondentes são apresentados a seguir. As Reason-Phrases listadas são apenas recomendações; elas podem ser substituídas por equivalentes sem afetar o protocolo. Os estados de resposta mais comuns estão destacados em negrito.
Status-Code =
"100" : Continue (1.1)
"101" : Switching Protocols (1.1)
"200" : OK
"201" : Created
"202" : Accepted
"203" : Non-Authoritative Information (1.1)
"204" : No Content
"205" : Reset Content (1.1)
"206" : Partial Content (1.1)
"300" : Multiple Choices (1.1)
"301" : Moved Permanently
"302" : Found (1.1), Moved Temporarily (1.0)
"303" : See Other (1.1)
"304" : Not Modified
"305" : Use Proxy (1.1)
"307" : Temporary Redirect (1.1)
"400" : Bad Request
"401" : Unauthorized
"402" : Payment Required (1.1)
"403" : Forbidden
"404" : Not Found
"405" : Method Not Allowed (1.1)
"406" : Not Acceptable (1.1)
"407" : Proxy Authentication Required (1.1)
"408" : Request Time-out (1.1)
"409" : Conflict (1.1)
"410" : Gone (1.1)
"411" : Length Required (1.1)
"412" : Precondition Failed (1.1)
"413" : Request Entity Too Large (1.1)
"414" : Request-URI Too Large (1.1)
"415" : Unsupported Media Type (1.1)
"416" : Requested range not satisfiable (1.1)
"417" : Expectation Failed (1.1)
"500" : Internal Server Error
"501" : Not Implemented
"502" : Bad Gateway
"503" : Service Unavailable
"504" : Gateway Time-out (1.1)
"505" : HTTP Version not supported (1.1)
extension-code