FreeToGenerate.com

O registo completo da IANA, incluindo os códigos que não deve usar.

64 códigos

1xx Informativos

O pedido foi recebido e o trabalho continua.

100
Continue[RFC9110, Section 15.2.1]
101
Switching Protocols[RFC9110, Section 15.2.2]
102
Processing[RFC2518]
103
Early Hints[RFC8297]
104
Upload Resumption Supportedtemporário · 2026-11-13[draft-ietf-httpbis-resumable-upload-05]

2xx Sucesso

O pedido foi recebido, compreendido e aceite.

200
OK[RFC9110, Section 15.3.1]
201
Created[RFC9110, Section 15.3.2]
202
Accepted[RFC9110, Section 15.3.3]
203
Non-Authoritative Information[RFC9110, Section 15.3.4]
204
No Content[RFC9110, Section 15.3.5]
205
Reset Content[RFC9110, Section 15.3.6]
206
Partial Content[RFC9110, Section 15.3.7]
207
Multi-Status[RFC4918]
208
Already Reported[RFC5842]
226
IM Used[RFC3229]

3xx Redireccionamento

É preciso mais alguma coisa para concluir o pedido.

300
Multiple Choices[RFC9110, Section 15.4.1]
301
Moved Permanently[RFC9110, Section 15.4.2]
302
Found[RFC9110, Section 15.4.3]
303
See Other[RFC9110, Section 15.4.4]
304
Not Modified[RFC9110, Section 15.4.5]
305
Use Proxy[RFC9110, Section 15.4.6]
306
(Unused)reservado[RFC9110, Section 15.4.7]
307
Temporary Redirect[RFC9110, Section 15.4.8]
308
Permanent Redirect[RFC9110, Section 15.4.9]

4xx Erro do cliente

O pedido estava malformado, ou não pode ser satisfeito como veio.

400
Bad Request[RFC9110, Section 15.5.1]
401
Unauthorized[RFC9110, Section 15.5.2]
402
Payment Required[RFC9110, Section 15.5.3]
403
Forbidden[RFC9110, Section 15.5.4]
404
Not Found[RFC9110, Section 15.5.5]
405
Method Not Allowed[RFC9110, Section 15.5.6]
406
Not Acceptable[RFC9110, Section 15.5.7]
407
Proxy Authentication Required[RFC9110, Section 15.5.8]
408
Request Timeout[RFC9110, Section 15.5.9]
409
Conflict[RFC9110, Section 15.5.10]
410
Gone[RFC9110, Section 15.5.11]
411
Length Required[RFC9110, Section 15.5.12]
412
Precondition Failed[RFC9110, Section 15.5.13]
413
Content Too Large[RFC9110, Section 15.5.14]
414
URI Too Long[RFC9110, Section 15.5.15]
415
Unsupported Media Type[RFC9110, Section 15.5.16]
416
Range Not Satisfiable[RFC9110, Section 15.5.17]
417
Expectation Failed[RFC9110, Section 15.5.18]
418
(Unused)reservado[RFC9110, Section 15.5.19]
421
Misdirected Request[RFC9110, Section 15.5.20]
422
Unprocessable Content[RFC9110, Section 15.5.21]
423
Locked[RFC4918]
424
Failed Dependency[RFC4918]
425
Too Early[RFC8470]
426
Upgrade Required[RFC9110, Section 15.5.22]
428
Precondition Required[RFC6585]
429
Too Many Requests[RFC6585]
431
Request Header Fields Too Large[RFC6585]
451
Unavailable For Legal Reasons[RFC7725]

5xx Erro do servidor

O pedido estava correcto e mesmo assim o servidor falhou.

500
Internal Server Error[RFC9110, Section 15.6.1]
501
Not Implemented[RFC9110, Section 15.6.2]
502
Bad Gateway[RFC9110, Section 15.6.3]
503
Service Unavailable[RFC9110, Section 15.6.4]
504
Gateway Timeout[RFC9110, Section 15.6.5]
505
HTTP Version Not Supported[RFC9110, Section 15.6.6]
506
Variant Also Negotiates[RFC2295]
507
Insufficient Storage[RFC4918]
508
Loop Detected[RFC5842]
510
Not Extendedobsoleto[RFC2774][Status change of HTTP experiments to Historic]
511
Network Authentication Required[RFC6585]

RESERVADO

Consta do registo como (Unused): reservado para que ninguém o atribua. Não devolva estes.

Foi registado em tempos e passou depois a Histórico. Continua listado, já não se usa.

Um registo provisório com data de validade. Pode expirar ou mudar.

Códigos que não estão no registo

Aparecem em quase todas as tabelas publicadas como se fossem norma. A IANA não atribuiu nenhum: o 419 e o 420 caem dentro de um intervalo por atribuir. São comportamentos reais de programas concretos, por isso vão aqui com o programa identificado.

420
Enhance Your CalmTwitter API v1, since retired
444
No Responsenginx, closes the connection without a response
494
Request header too largenginx
495
SSL Certificate Errornginx
496
SSL Certificate Requirednginx
497
HTTP Request Sent to HTTPS Portnginx
499
Client Closed Requestnginx
520
Web server returns an unknown errorCloudflare
521
Web server is downCloudflare
522
Connection timed outCloudflare
523
Origin is unreachableCloudflare
524
A timeout occurredCloudflare
525
SSL handshake failedCloudflare
526
Invalid SSL certificateCloudflare

Intervalos que a IANA não atribuiu a ninguém

Qualquer código destes intervalos está livre. Se inventar um para uma API interna, é daqui que deve sair, e continuará a ser uma extensão privada e não uma norma.

105-199209-225227-299309-399419-420427430432-450452-499509512-599

Gerado a partir do registo da IANA em 2026-08-07.

Também disponível em: English · Español · Français · العربية

Códigos de estado HTTP

A lista completa do registo da IANA, com os quatro estados que quase todas as tabelas confundem num só.

O que é um código de estado HTTP

Toda a resposta HTTP começa por um número de três algarismos que diz como correu. O primeiro algarismo é a classe: 1xx significa que o servidor ainda está a trabalhar, 2xx que correu bem, 3xx que tem de ir a outro sítio, 4xx que o pedido estava errado e 5xx que o errado era o servidor. O número é o que o software interpreta; a frase ao lado é para pessoas.

A lista com autoridade é o registo de códigos de estado HTTP da IANA, e esta página é gerada a partir dele em vez de escrita de memória. Isso importa mais do que parece, porque o registo regista quatro estados diferentes e quase todas as tabelas publicadas achatam-nos numa única lista de códigos que poderia usar.

Como usar esta lista

  1. Pesquise por número ou por frase. Os números procuram-se pelo início, portanto escrever 40 dá-lhe toda a família 40x e 404 reduz a um. O texto procura-se em qualquer parte da frase: experimente gateway, ou legal.
  2. Veja as etiquetas antes de usar um código. Reservado significa que o registo o pôs de parte para que ninguém o usasse. Obsoleto significa que foi registado e depois retirado. Temporário significa que esse registo tem data de validade.
  3. Desça para lá do registo para o resto. Os códigos que já viu por aí e não encontra acima estão na secção de fornecedores, cada um atribuído ao programa que o devolve, e a seguir os intervalos que a IANA não atribuiu a ninguém.

O 418 não é um código de brincadeira que possa usar

O dado mais repetido sobre códigos HTTP é que o 418 I'm a Teapot é uma partida de 1998 e que o pode devolver por graça. A primeira metade é verdade. A segunda está ao contrário, e o registo di-lo sem rodeios: o 418 está listado, a sua descrição é (Unused) e a sua referência é a secção 15.5.19 do RFC 9110. Aparece no registo precisamente para nunca poder ser atribuído a nada real.

Esse é um estado diferente de «por atribuir», e essa distinção é a razão de ser desta página. O 306 está na mesma situação: reservado, inutilizável para sempre. O 510 Not Extended está num terceiro estado: foi mesmo registado e depois a sua experiência foi reclassificada como Histórica, pelo que consta como obsoleto. E o 104 Upload Resumption Supported está num quarto: um registo temporário que expira a 13 de Novembro de 2026 e pode simplesmente desaparecer.

Tire tudo isso e ficam 61 códigos que um servidor deve mesmo devolver, em 64 linhas do registo. Uma tabela que apresenta os 64 como iguais está a dizer-lhe para usar dois códigos que existem para ser inutilizáveis.

Os códigos que nem sequer estão no registo

As tabelas publicadas têm um segundo problema: os códigos que acrescentam. O 420, o 444, o 499 e a família 52x aparecem em quase todas as listas como se estivessem ao lado do 404. A IANA não atribuiu nenhum. No caso do 420 o registo é explícito em sentido contrário: 419-420 é um dos onze intervalos marcados como por atribuir.

Não são inventados, isso sim: são comportamentos reais de programas concretos, e por isso vão aqui na sua própria secção com o programa identificado. O 499 é o nginx a anotar que o cliente desligou antes de a resposta estar pronta. O 444 é o nginx a fechar a ligação sem sequer responder. A família 52x é da Cloudflare, e a sua própria documentação de apoio lista do 520 ao 526 e o 530 ao lado dos códigos 5xx padrão sem em momento algum mencionar que não estão registados, o que explica boa parte da sua difusão.

A consequência prática é simples. Qualquer código de um intervalo por atribuir está livre para uso interno, e continuará a ser uma extensão privada e não uma norma: nenhuma biblioteca cliente saberá o que quer dizer com ele.

Limites honestos

Isto é um instantâneo. O registo muda: o 451 foi acrescentado em 2016, o 103 em 2017, e o 104 chegou em 2024 como registo temporário já com data de validade. A data em que a lista foi gerada está impressa no fim, e o script que a gerou está no repositório, portanto a página pode dizer quando foi verdadeira em vez de insinuar que o será sempre.

As frases de estado são as do próprio registo, em inglês, e deliberadamente não são traduzidas nas outras versões desta página. A frase viaja no fio como parte do protocolo — um servidor envia Not Found, não «Não encontrado» —, portanto traduzi-la descreveria algo que nenhum servidor devolve. O que se traduz é a explicação em redor; o protocolo não.

A tabela de fornecedores é a única parte que não sai de um registo, porque não há registo nenhum de onde a tirar. Cada linha vem da documentação do próprio fornecedor. Não é exaustiva nem pode ser, já que qualquer um pode devolver o número que lhe apetecer.

Porque é grátis?

Porque é uma lista. A página inteira é texto estático com uma caixa de pesquisa que a filtra no seu navegador: nada é enviado, nada é guardado e não há servidor pelo meio para a ler.

Portanto não há conta, nem registo, nem nada atrás de um muro. O registo de base é um documento público mantido pela IANA, e uma lista de factos públicos não devia ter uma cobrança à frente.