Início·Códigos e cabeçalhos HTTP
Publicidade

Garanta seu bônus em uma corretora de cripto

Bônus que você recebe só por se cadastrar. As condições são as que cada corretora anuncia.

132 códigos de status e cabeçalhos HTTP

O que 404 e 500 realmente significam e o que Content-Type ou Cache-Control fazem, em uma linha.

Códigos de status

1xx Informativos4

Um aviso de progresso; a resposta real vem depois.

2xx Sucesso10

O pedido deu certo.

3xx Redirecionamento8

Vá para outro lugar: o que muda é ser permanente ou temporário.

4xx Erro do cliente29

O problema está no pedido; repeti-lo igual vai falhar de novo.

400 Bad RequestO pedido está malformado e não pode ser lido.401 UnauthorizedVocê não disse quem é; entrar na conta costuma resolver.402 Payment RequiredÉ preciso pagar: está no padrão, mas quase não se usa.403 ForbiddenO servidor sabe quem você é e mesmo assim nega; entrar na conta pode não mudar.404 Not FoundNão há nada nesse endereço: a URL está errada ou a página sumiu.405 Method Not AllowedO endereço existe, mas não aceita esse método.406 Not AcceptableO servidor não consegue entregar o formato pedido.407 Proxy Authentication RequiredUm proxy no meio exige autenticação antes.408 Request TimeoutO servidor esperou e o pedido nunca chegou por inteiro.409 ConflictO pedido conflita com o estado atual: típico de duas edições ao mesmo tempo.410 GoneRemovido de propósito e não volta: uma despedida mais clara que 404.411 Length RequiredO pedido precisa informar o tamanho do corpo e não informou.412 Precondition FailedUma condição enviada com o pedido não se confirmou.413 Content Too LargeO corpo enviado passa do tamanho que o servidor aceita.414 URI Too LongA URL é longa demais: costuma acontecer ao empilhar parâmetros.415 Unsupported Media TypeO servidor não lida com o tipo de conteúdo enviado.416 Range Not SatisfiableO intervalo pedido está fora do arquivo.417 Expectation FailedNão dá para cumprir o que o cabeçalho Expect pediu.418 I'm a teapotUm código de brincadeira: o bule se recusa a fazer café. Veio de um RFC de primeiro de abril.421 Misdirected RequestEste servidor não é o certo para esse pedido.422 Unprocessable ContentA sintaxe está certa, mas o conteúdo quebra as regras.423 LockedO recurso está bloqueado.424 Failed DependencyUm pedido anterior falhou, então este também não segue.425 Too EarlyO servidor não arrisca processar algo que pode ser repetição.426 Upgrade RequiredÉ preciso mudar de protocolo para continuar.428 Precondition RequiredO pedido precisa levar uma condição: assim se evitam sobrescritas.429 Too Many RequestsVocê fez pedidos demais; Retry-After diz quando tentar de novo.431 Request Header Fields Too LargeOs cabeçalhos são grandes demais: costuma ser cookie acumulado.451 Unavailable For Legal ReasonsBloqueado por motivos legais; o número alude ao romance Fahrenheit 451.

5xx Erro do servidor11

O problema está no servidor; costuma valer a pena tentar depois.

Cabeçalhos

Cabeçalhos de pedido55

Cabeçalhos que o navegador anexa ao enviar ao servidor.

AcceptInforma quais formatos o cliente aceita.Accept-EncodingLista as compressões que o cliente entende; gzip ou br reduzem muito o tamanho.Accept-LanguageDeclara os idiomas preferidos; sites multilíngues escolhem por aqui.AuthorizationLeva as credenciais que provam quem você é: um token ou usuário e senha.CookieDevolve os cookies que o servidor guardou antes.HostIndica o domínio solicitado: permite que um servidor hospede vários sites.If-Modified-SincePede o recurso só se mudou depois daquele horário.If-None-MatchPede o recurso só se o ETag for diferente: é assim que o cache revalida.OriginInforma a origem do pedido; o navegador adiciona e o CORS se baseia nele.RangePede só parte do arquivo: a base da retomada e da busca em vídeo.RefererIndica a página de origem; o erro de grafia ficou fixado no padrão.User-AgentDescreve o navegador e o aparelho; hoje quase tudo é camuflagem.Sec-Fetch-DestDiz para que serve o pedido: imagem, script, documento.Sec-Fetch-ModeIndica se o pedido é de mesma origem, CORS ou navegação.Sec-Fetch-SiteDiz se o pedido veio do mesmo site ou de outro.DNTPede para não ser rastreado; não obriga nada e costuma ser ignorado.ExpectConsulta o servidor antes de enviar um corpo grande.ForwardedGuarda os dados originais do cliente após passar por proxies.FromLeva o e-mail de quem faz o pedido; rastreadores usam como contato.If-MatchSó prossegue se o ETag bater: evita sobrescrever mudanças alheias.If-RangeRetoma se o arquivo não mudou; caso contrário, começa do zero.Max-ForwardsLimita por quantos proxies o pedido pode passar.Proxy-AuthorizationCredenciais para o proxy, não para o servidor de origem.TELista as codificações de transferência aceitas.Upgrade-Insecure-RequestsPede ao servidor que troque links http por https.X-Forwarded-ForLeva o IP original do cliente através de proxies; não é padrão, mas é muito usado.X-Forwarded-ProtoDiz se o pedido original chegou por http ou https.X-Requested-WithUma convenção antiga para marcar pedidos feitos por JavaScript.Accept-CharsetLista as codificações de caracteres que o cliente aceita; hoje quase não se usa.If-Unmodified-SincePede ao servidor que aja só se o recurso não mudou desde aquele momento.Sec-CH-UAInforma a marca e a versão principal do navegador; substitui o User-Agent.Sec-CH-UA-MobileDiz apenas se o aparelho é um celular; uma única marca de sim ou não.Sec-CH-UA-PlatformInforma de qual sistema operacional veio o pedido; a versão vai à parte.Save-DataDiz ao servidor que o usuário quer poupar dados e pode receber uma versão leve.Device-MemoryInforma aproximadamente quanta memória o aparelho tem; o valor é grosseiro de propósito.Early-DataMarca um pedido enviado como dados adiantados, antes de o aperto de mão terminar.Access-Control-Request-MethodPergunta de antemão qual método o pedido real usará; só vai na verificação prévia.Access-Control-Request-HeadersPergunta de antemão quais cabeçalhos o pedido real levará; só vai na verificação prévia.Sec-PurposeMarca o pedido como especulativo; prefetch significa que ainda não houve clique.Sec-CH-UA-ArchInforma a arquitectura da CPU: arm ou x86.Sec-CH-UA-ModelInforma o modelo do aparelho; na prática só os telemóveis o preenchem.Sec-CH-UA-Platform-VersionInforma a versão do sistema operativo; acompanha Sec-CH-UA-Platform.X-Forwarded-HostO Host original pedido pelo navegador, antes de um proxy o reescrever.X-Real-IPO proxy passa aqui o endereço original do cliente; não é padrão, mas é muito usado.Alt-UsedAvisa que o cliente veio por Alt-Svc, o que evita ciclos.Sec-WebSocket-KeyUm valor aleatório ao pedir a mudança para WebSocket; o servidor devolve-o processado.Sec-WebSocket-VersionA versão do protocolo WebSocket pedida; na prática é sempre 13.Last-Event-IDEnvia o último id recebido para retomar um fluxo de eventos interrompido.TraceparentCarrega o id de rastreio que liga uma requisição por todos os serviços que ela cruza.BaggageCarrega contexto de chave–valor que viaja com a requisição entre serviços.Idempotency-KeyUma chave para o servidor tratar uma requisição repetida como a mesma; comum em pagamentos.PreferDiz ao servidor o que o cliente preferiria; o servidor pode ou não atender.Sec-GPCSinal do navegador de que a pessoa não quer que seus dados sejam vendidos ou partilhados.Sec-CH-Prefers-Color-SchemeDiz ao servidor se a pessoa prefere o tema claro ou escuro.Sec-CH-UA-Full-Version-ListLista as versões completas do navegador e seus motores; substitui o User-Agent.

Cabeçalhos de resposta56

Cabeçalhos que o servidor anexa ao responder.

Access-Control-Allow-OriginIndica quais origens podem ler esta resposta: o coração do CORS.Access-Control-Allow-MethodsLista os métodos permitidos em pedidos de outra origem.Access-Control-Allow-HeadersLista os cabeçalhos permitidos em pedidos de outra origem.Access-Control-Allow-CredentialsDecide se pedidos de outra origem podem levar cookies.Access-Control-Max-AgeDiz por quanto tempo o resultado do preflight pode ser cacheado.AgeHá quanto tempo a resposta está no cache.AllowLista os métodos que o endereço aceita; acompanha um 405.Content-DispositionDecide se exibe ou baixa, e leva o nome do arquivo.Content-Security-PolicyControla de onde scripts e imagens podem vir: a cerca contra XSS.ETagUma impressão digital desta versão: muda o conteúdo, muda a etiqueta, e o cache percebe.ExpiresMarca o momento após o qual a resposta é considerada velha.Last-ModifiedQuando mudou pela última vez; pedidos condicionais comparam com isso.LocationO endereço para onde ir; acompanha redirecionamentos e o 201.Permissions-PolicyControla quais documentos podem usar câmera, microfone ou localização.Referrer-PolicyDecide quanta informação de origem é enviada.Retry-AfterDiz quando tentar de novo; acompanha um 429 ou 503.ServerDiz o software do servidor; detalhe demais dá pista a atacantes.Set-CookieColoca um cookie no navegador; use HttpOnly e Secure para protegê-lo.Strict-Transport-SecurityDiz ao navegador para usar só https neste site daqui em diante.Timing-Allow-OriginPermite que outra origem leia as medições de desempenho.VaryIndica quais cabeçalhos mudam a resposta; o cache se guia por ela.WWW-AuthenticateIndica o esquema de autenticação; acompanha um 401.X-Content-Type-OptionsImpede o navegador de adivinhar outro tipo de conteúdo.X-Frame-OptionsImpede que outros sites coloquem esta página num quadro.X-XSS-ProtectionLigava um antigo filtro XSS do navegador; hoje o CSP o substitui.Cross-Origin-Opener-PolicyIsola o contexto para que outras origens não segurem a janela.Cross-Origin-Resource-PolicyIndica quais origens podem sequer buscar este recurso.Cross-Origin-Embedder-PolicyExige que recursos de outra origem deem permissão explícita.Content-RangeIndica qual parte do total foi enviada; acompanha um 206.Accept-RangesIndica se aceita pedidos por intervalo; bytes significa que dá para retomar.Accept-PatchLista os formatos de correção que o recurso aceita.Accept-PostLista os tipos de conteúdo que o recurso aceita num POST.Alt-SvcAnuncia outra rota para o mesmo serviço; costuma apontar para HTTP/3.Clear-Site-DataManda o navegador apagar os dados guardados; usa-se ao sair da conta.LinkAponta recursos relacionados pelo cabeçalho; também sugere pré-carregamentos.NELDefine para onde o navegador deve relatar os erros de rede que encontrar.Report-ToRegistra pontos com nome para onde os relatórios serão enviados.Server-TimingInforma quanto demorou cada etapa dentro do servidor.SourceMapAponta o mapa que leva de volta ao código original sem empacotar.X-DNS-Prefetch-ControlLiga ou desliga a busca antecipada de DNS do navegador.X-Permitted-Cross-Domain-PoliciesControla se plug-ins antigos podem carregar dados desta origem.X-Robots-TagPassa regras de indexação aos robôs num cabeçalho, útil para imagens e PDFs.Origin-Agent-ClusterPede ao navegador que isole esta origem no seu próprio grupo.Proxy-AuthenticateIndica como o proxy quer que o cliente prove quem é.Access-Control-Expose-HeadersLista quais cabeçalhos de resposta um script pode ler.CDN-Cache-ControlUma regra de cache voltada só à rede de entrega; os navegadores a ignoram.Accept-CHLista as client hints que o servidor quer; o navegador envia-as a partir do pedido seguinte.Critical-CHMarca hints como críticas: o navegador repete o primeiro pedido com elas.Reporting-EndpointsIndica para onde enviar relatórios de erro; substitui o antigo Report-To.X-Powered-ByRevela a tecnologia do servidor; não traz vantagem, por isso costuma ser removido.X-CacheDiz se um CDN respondeu do cache; HIT significa que a origem não foi tocada.RefreshManda ir para outra página após alguns segundos; não é padrão, mas todos obedecem.Sec-WebSocket-AcceptDevolve a chave do cliente processada de forma fixa; sem coincidir não há ligação.Speculation-RulesDá ao navegador regras sobre que URL pré-carregar ou pré-renderizar.No-Vary-SearchDiz quais parâmetros de consulta podem ser ignorados ao procurar no cache.X-UA-CompatibleDizia ao antigo Internet Explorer qual modo de renderização usar.

Nos dois sentidos22

Cabeçalhos que podem aparecer nos dois lados.

Cache-ControlDefine quanto e onde se pode cachear: metade do desempenho está aqui.ConnectionIndica se mantém a conexão; HTTP/2 já não usa.Content-EncodingIndica a compressão aplicada ao corpo.Content-LanguageIndica o idioma em que o corpo está escrito.Content-LengthIndica o tamanho do corpo em bytes.Content-TypeDeclara o tipo de conteúdo e a codificação; se errar, a imagem vira texto.DateO momento em que a mensagem foi gerada.PragmaUm cabeçalho de cache antigo; hoje o Cache-Control o substitui.TrailerAnuncia quais cabeçalhos virão depois do corpo.Transfer-EncodingDescreve como o corpo é fatiado; com chunked não é preciso saber o tamanho antes.UpgradePropõe trocar de protocolo; faz par com um 101.ViaRegistra os proxies por onde a mensagem passou.WarningTrazia avisos sobre cache ou transformação; já não se usa.PriorityIndica a urgência do pedido e se pode ser entregue fora de ordem.Content-LocationIndica em que endereço o corpo recém-enviado realmente está.Keep-AliveIndica quanto tempo uma conexão reaproveitada deve ficar aberta.Content-DigestLeva uma soma de verificação do corpo para conferir se chegou intacto.TracestateCarrega dados de rastreio próprios de cada fornecedor junto ao traceparent.Repr-DigestCarrega um hash da representação para o outro lado conferir se chegou íntegra.SignatureA assinatura da mensagem, para quem recebe verificar quem enviou.Signature-InputIndica o que a assinatura cobre: quais cabeçalhos foram assinados e como.X-Request-IDUm id por requisição, usado para reencontrá-la nos registos.

Como ler

  • O primeiro dígito do código carrega o sentido: 4 aponta para o pedido, 5 para o servidor.
  • 404 quer dizer "não existe"; 403, "existe, mas não para você". Trocar os dois atrasa a investigação.
  • Nomes de cabeçalho não diferenciam maiúsculas: Content-Type e content-type são o mesmo.
  • Problemas de cache e CORS costumam caber numa linha de cabeçalho, visível na aba de rede.

Perguntas frequentes

QQual a diferença entre 404 e 403?

404 diz que não há nada nesse endereço; 403 diz que há, mas você não pode ver. Alguns servidores respondem 404 de propósito para esconder que o recurso existe.

QDá para fazer algo diante de um 500?

Códigos que começam com 5 são problema do servidor, então em geral só resta esperar. Já um 502 ou 504 fica entre dois servidores e costuma passar ao tentar de novo.

QComo escolher entre 301 e 302?

Use 301 quando o endereço mudou de vez e 302 quando é temporário. Lembre que navegadores e buscadores guardam um 301 por muito tempo, o que dificulta voltar atrás.

QOs nomes de cabeçalho diferenciam maiúsculas?

Não. Content-Type e content-type são o mesmo, e desde o HTTP/2 são enviados em minúsculas por definição.

QPor que ocorrem erros de CORS?

Quando a página tenta ler uma resposta de outra origem, o navegador bloqueia a menos que o servidor permita com Access-Control-Allow-Origin. O servidor respondeu: é o navegador que não entrega o corpo ao seu código, e por isso a aba de rede mostra algo que o script não lê.