FreeToGenerate.com

O registo não tem coluna de pedido ou resposta. Toda a lista que arruma os cabeçalhos assim está a arrumá-los pelo critério de alguém.

257 campos

O que significam as etiquetas

o script pode defini-lo
Nada na norma Fetch impede um script de enviar este cabeçalho num pedido seu.
o script não pode defini-lo
Está na lista de proibidos da norma Fetch, portanto o navegador guarda o controlo dele e descarta em silêncio qualquer tentativa de o definir.
fechado por prefixo
O nome começa por um prefixo reservado, portanto nenhum script alguma vez o poderá definir. É esse o sentido do espaço de nomes: os cabeçalhos cunhados lá dentro não podem ser forjados pelo código da página.
depende do valor
Proibido apenas quando o valor nomeia um método que o navegador se recusa a substituir.
nome na lista CORS
Estar na lista depende também do valor, portanto este nome por si só não significa que o pedido escape ao preflight.
o script não o consegue ler
A norma Fetch proíbe um script de ler este cabeçalho de uma resposta, digam o que disserem os cabeçalhos CORS.
não é um cabeçalho
Registado com o comentário (reserved), ou seja, registado para que ninguém alguma vez o registe.
Tipo estruturado
Como o valor é analisado segundo a especificação de campos estruturados, que dispensa ler a ABNF à mão.

Permanentes

Registados de vez, com uma especificação por trás.

*o script pode defini-lonão é um cabeçalho

Referência: RFC 9110 §12.5.5

(reserved)

A-IMo script pode defini-lo

Referência: RFC 3229

Accepto script pode defini-lonome na lista CORS

Referência: RFC 9110 §12.5.1

Accept-Additionso script pode defini-lo

Referência: RFC 2324

Accept-CHo script pode defini-loList

Referência: RFC 8942 §3.1

Accept-Datetimeo script pode defini-lo

Referência: RFC 7089

Accept-Encodingo script não pode defini-lo

Referência: RFC 9110 §12.5.3

Accept-Featureso script pode defini-lo

Referência: RFC 2295

Accept-Languageo script pode defini-lonome na lista CORS

Referência: RFC 9110 §12.5.4

Accept-Patcho script pode defini-lo

Referência: RFC 5789

Accept-Posto script pode defini-lo

Referência: Linked Data Platform 1.0

Accept-Queryo script pode defini-loList

Referência: RFC 10008 §3

Accept-Rangeso script pode defini-lo

Referência: RFC 9110 §14.3

Accept-Signatureo script pode defini-lo

Referência: RFC 9421 §5.1

Access-Control-Allow-Credentialso script pode defini-lo

Referência: Fetch

Access-Control-Allow-Headerso script pode defini-lo

Referência: Fetch

Access-Control-Allow-Methodso script pode defini-lo

Referência: Fetch

Access-Control-Allow-Origino script pode defini-lo

Referência: Fetch

Access-Control-Expose-Headerso script pode defini-lo

Referência: Fetch

Access-Control-Max-Ageo script pode defini-lo

Referência: Fetch

Access-Control-Request-Headerso script não pode defini-lo

Referência: Fetch

Access-Control-Request-Methodo script não pode defini-lo

Referência: Fetch

Ageo script pode defini-lo

Referência: RFC 9111 §5.1

Allowo script pode defini-lo

Referência: RFC 9110 §10.2.1

ALPNo script pode defini-lo

Referência: RFC 7639 §2

Alt-Svco script pode defini-lo

Referência: RFC 7838

Alt-Usedo script pode defini-lo

Referência: RFC 7838

Alternateso script pode defini-lo

Referência: RFC 2295

Apply-To-Redirect-Refo script pode defini-lo

Referência: RFC 4437

Authentication-Controlo script pode defini-lo

Referência: RFC 8053 §4

Authentication-Infoo script pode defini-lo

Referência: RFC 9110 §11.6.3

Authorizationo script pode defini-lo

Referência: RFC 9110 §11.6.2

Available-Dictionaryo script pode defini-loItem

Referência: RFC 9842 §2.2

Cache-Controlo script pode defini-lo

Referência: RFC 9111 §5.2

Cache-Group-Invalidationo script pode defini-loList

Referência: RFC 9875

Cache-Groupso script pode defini-loList

Referência: RFC 9875

Cache-Statuso script pode defini-loList

Referência: RFC 9211

Cal-Managed-IDo script pode defini-lo

Referência: RFC 8607 §5.1

CalDAV-Timezoneso script pode defini-lo

Referência: RFC 7809 §7.1

Capsule-Protocolo script pode defini-loItem

Referência: RFC 9297

CDN-Cache-Controlo script pode defini-loDictionary

Referência: RFC 9213

Cache directives targeted at content delivery networks

CDN-Loopo script pode defini-lo

Referência: RFC 8586

Cert-Not-Aftero script pode defini-lo

Referência: RFC 8739 §3.3

Cert-Not-Beforeo script pode defini-lo

Referência: RFC 8739 §3.3

Clear-Site-Datao script pode defini-lo

Referência: Clear Site Data

Client-Certo script pode defini-loItem

Referência: RFC 9440 §2

Client-Cert-Chaino script pode defini-loList

Referência: RFC 9440 §2

Closeo script pode defini-lonão é um cabeçalho

Referência: RFC 9112 §9.6

(reserved)

Concealed-Auth-Exporto script pode defini-loItem

Referência: RFC 9729

Connectiono script não pode defini-lo

Referência: RFC 9110 §7.6.1

Content-Digesto script pode defini-loDictionary

Referência: RFC 9530 §2

Content-Dispositiono script pode defini-lo

Referência: RFC 6266

Content-Encodingo script pode defini-lo

Referência: RFC 9110 §8.4

Content-Languageo script pode defini-lonome na lista CORS

Referência: RFC 9110 §8.5

Content-Lengtho script não pode defini-lo

Referência: RFC 9110 §8.6

Content-Locationo script pode defini-lo

Referência: RFC 9110 §8.7

Content-Rangeo script pode defini-lo

Referência: RFC 9110 §14.4

Content-Security-Policyo script pode defini-lo

Referência: Content Security Policy Level 3

Content-Security-Policy-Report-Onlyo script pode defini-lo

Referência: Content Security Policy Level 3

Content-Typeo script pode defini-lonome na lista CORS

Referência: RFC 9110 §8.3

Cookieo script não pode defini-lo

Referência: RFC-ietf-httpbis-rfc6265bis-22, Section 5.8.1

Cross-Origin-Embedder-Policyo script pode defini-loItem

Referência: HTML

Cross-Origin-Embedder-Policy-Report-Onlyo script pode defini-loItem

Referência: HTML

Cross-Origin-Opener-Policyo script pode defini-loItem

Referência: HTML

Cross-Origin-Opener-Policy-Report-Onlyo script pode defini-loItem

Referência: HTML

Cross-Origin-Resource-Policyo script pode defini-lo

Referência: Fetch

DASLo script pode defini-lo

Referência: RFC 5323

Dateo script não pode defini-lo

Referência: RFC 9110 §6.6.1

DAVo script pode defini-lo

Referência: RFC 4918

Delta-Baseo script pode defini-lo

Referência: RFC 3229

Deprecationo script pode defini-loItem

Referência: RFC 9745 §2

Deptho script pode defini-lo

Referência: RFC 4918

Destinationo script pode defini-lo

Referência: RFC 4918

Detached-JWSo script pode defini-lo

Referência: RFC 9635

Dictionary-IDo script pode defini-loItem

Referência: RFC 9842 §2.3

DPoPo script pode defini-lo

Referência: RFC 9449

DPoP-Nonceo script pode defini-lo

Referência: RFC 9449

Early-Datao script pode defini-lo

Referência: RFC 8470

ETago script pode defini-lo

Referência: RFC 9110 §8.8.3

Expecto script não pode defini-lo

Referência: RFC 9110 §10.1.1

Expireso script pode defini-lo

Referência: RFC 9111 §5.3

Forwardedo script pode defini-lo

Referência: RFC 7239

Fromo script pode defini-lo

Referência: RFC 9110 §10.1.2

Hobarego script pode defini-lo

Referência: RFC 7486 §6.1.1

Hosto script não pode defini-lo

Referência: RFC 9110 §7.2

Ifo script pode defini-lo

Referência: RFC 4918

If-Matcho script pode defini-lo

Referência: RFC 9110 §13.1.1

If-Modified-Sinceo script pode defini-lo

Referência: RFC 9110 §13.1.3

If-None-Matcho script pode defini-lo

Referência: RFC 9110 §13.1.2

If-Rangeo script pode defini-lo

Referência: RFC 9110 §13.1.5

If-Schedule-Tag-Matcho script pode defini-lo

Referência: RFC 6338

If-Unmodified-Sinceo script pode defini-lo

Referência: RFC 9110 §13.1.4

IMo script pode defini-lo

Referência: RFC 3229

Include-Referred-Token-Binding-IDo script pode defini-lo

Referência: RFC 8473

Incrementalo script pode defini-lo

Referência: RFC-ietf-httpbis-incremental-04

Keep-Aliveo script não pode defini-lo

Referência: RFC 2068

Labelo script pode defini-lo

Referência: RFC 3253

Last-Event-IDo script pode defini-lo

Referência: HTML

Last-Modifiedo script pode defini-lo

Referência: RFC 9110 §8.8.2

Linko script pode defini-lo

Referência: RFC 8288

Link-Templateo script pode defini-lo

Referência: RFC 9652

Locationo script pode defini-lo

Referência: RFC 9110 §10.2.2

Lock-Tokeno script pode defini-lo

Referência: RFC 4918

Max-Forwardso script pode defini-lo

Referência: RFC 9110 §7.6.2

Memento-Datetimeo script pode defini-lo

Referência: RFC 7089

Metero script pode defini-lo

Referência: RFC 2227

MIME-Versiono script pode defini-lo

Referência: RFC 9112 App. B.1

Negotiateo script pode defini-lo

Referência: RFC 2295

NELo script pode defini-lo

Referência: Network Error Logging

OData-EntityIdo script pode defini-lo

Referência: OData Version 4.01 Part 1, OASIS, Chet_Ensign

OData-Isolationo script pode defini-lo

Referência: OData Version 4.01 Part 1, OASIS, Chet_Ensign

OData-MaxVersiono script pode defini-lo

Referência: OData Version 4.01 Part 1, OASIS, Chet_Ensign

OData-Versiono script pode defini-lo

Referência: OData Version 4.01 Part 1, OASIS, Chet_Ensign

Optional-WWW-Authenticateo script pode defini-lo

Referência: RFC 8053 §3

Ordering-Typeo script pode defini-lo

Referência: RFC 3648

Origino script não pode defini-lo

Referência: RFC 6454

Origin-Agent-Clustero script pode defini-loItem

Referência: HTML

OSCOREo script pode defini-lo

Referência: RFC 8613 §11.1

OSLC-Core-Versiono script pode defini-lo

Referência: OASIS Project Specification 01, OASIS, Chet_Ensign

Overwriteo script pode defini-lo

Referência: RFC 4918

Ping-Fromo script pode defini-lo

Referência: HTML

Ping-Too script pode defini-lo

Referência: HTML

Positiono script pode defini-lo

Referência: RFC 3648

Prefero script pode defini-lo

Referência: RFC 7240

Preference-Appliedo script pode defini-lo

Referência: RFC 7240

Priorityo script pode defini-loDictionary

Referência: RFC 9218

Proxy-Authenticatefechado por prefixo

Referência: RFC 9110 §11.7.1

Proxy-Authentication-Infofechado por prefixo

Referência: RFC 9110 §11.7.3

Proxy-Authorizationfechado por prefixo

Referência: RFC 9110 §11.7.2

Proxy-Statusfechado por prefixoList

Referência: RFC 9209

Public-Key-Pinso script pode defini-lo

Referência: RFC 7469

Public-Key-Pins-Report-Onlyo script pode defini-lo

Referência: RFC 7469

Rangeo script pode defini-lonome na lista CORS

Referência: RFC 9110 §14.2

Redirect-Refo script pode defini-lo

Referência: RFC 4437

Referero script não pode defini-lo

Referência: RFC 9110 §10.1.3

Referrer-Policyo script pode defini-lo

Referência: Referrer Policy

The header name does not share the HTTP Referer header's misspelling.

Refresho script pode defini-lo

Referência: HTML

Replay-Nonceo script pode defini-lo

Referência: RFC 8555 §6.5.1

Repr-Digesto script pode defini-loDictionary

Referência: RFC 9530 §3

Retry-Aftero script pode defini-lo

Referência: RFC 9110 §10.2.3

Schedule-Replyo script pode defini-lo

Referência: RFC 6638

Schedule-Tago script pode defini-lo

Referência: RFC 6338

Sec-Fetch-Destfechado por prefixoItem

Referência: w3.org

Sec-Fetch-Modefechado por prefixoItem

Referência: w3.org

Sec-Fetch-Sitefechado por prefixoItem

Referência: w3.org

Sec-Fetch-Userfechado por prefixoItem

Referência: w3.org

Sec-Purposefechado por prefixo

Referência: Fetch

Intended to replace the (not registered) Purpose and x-moz headers.

Sec-Token-Bindingfechado por prefixo

Referência: RFC 8473

Sec-WebSocket-Acceptfechado por prefixo

Referência: RFC 6455

Sec-WebSocket-Extensionsfechado por prefixo

Referência: RFC 6455

Sec-WebSocket-Keyfechado por prefixo

Referência: RFC 6455

Sec-WebSocket-Protocolfechado por prefixo

Referência: RFC 6455

Sec-WebSocket-Versionfechado por prefixo

Referência: RFC 6455

Servero script pode defini-lo

Referência: RFC 9110 §10.2.4

Server-Timingo script pode defini-lo

Referência: Server Timing

Set-Cookieo script não pode defini-loo script não o consegue ler

Referência: RFC-ietf-httpbis-rfc6265bis-22, Section 5.8.1

Set-Txno script pode defini-lo

Referência: RFC 9967 §3

Signatureo script pode defini-loDictionary

Referência: RFC 9421 §4.2

Signature-Inputo script pode defini-loDictionary

Referência: RFC 9421 §4.1

SLUGo script pode defini-lo

Referência: RFC 5023

SoapActiono script pode defini-lo

Referência: Simple Object Access Protocol (SOAP) 1.1

Status-URIo script pode defini-lo

Referência: RFC 2518

Strict-Transport-Securityo script pode defini-lo

Referência: RFC 6797

Sunseto script pode defini-lo

Referência: RFC 8594

TCNo script pode defini-lo

Referência: RFC 2295

TEo script não pode defini-lo

Referência: RFC 9110 §10.1.4

Timeouto script pode defini-lo

Referência: RFC 4918

Topico script pode defini-lo

Referência: RFC 8030 §5.4

Traceparento script pode defini-lo

Referência: Trace Context

Tracestateo script pode defini-lo

Referência: Trace Context

Trailero script não pode defini-lo

Referência: RFC 9110 §6.6.2

Transfer-Encodingo script não pode defini-lo

Referência: RFC 9112 §6.1

TTLo script pode defini-lo

Referência: RFC 8030 §5.2

Unencoded-Digesto script pode defini-loDictionary

Referência: RFC-ietf-httpbis-unencoded-digest-05, Section 3

Upgradeo script não pode defini-lo

Referência: RFC 9110 §7.8

Urgencyo script pode defini-lo

Referência: RFC 8030 §5.3

Use-As-Dictionaryo script pode defini-loDictionary

Referência: RFC 9842 §2.1

User-Agento script pode defini-lo

Referência: RFC 9110 §10.1.5

Variant-Varyo script pode defini-lo

Referência: RFC 2295

Varyo script pode defini-lo

Referência: RFC 9110 §12.5.5

Viao script não pode defini-lo

Referência: RFC 9110 §7.6.3

Want-Content-Digesto script pode defini-loDictionary

Referência: RFC 9530 §4

Want-Repr-Digesto script pode defini-loDictionary

Referência: RFC 9530 §4

Want-Unencoded-Digesto script pode defini-loDictionary

Referência: RFC-ietf-httpbis-unencoded-digest-05, Section 4

WWW-Authenticateo script pode defini-lo

Referência: RFC 9110 §11.6.1

X-Content-Type-Optionso script pode defini-lo

Referência: Fetch

X-Frame-Optionso script pode defini-lo

Referência: HTML

Provisórios

Registados, mas a entrada ainda não assentou e pode mudar ou desaparecer.

Activate-Storage-Accesso script pode defini-loItem

Referência: privacycg.github.io

AMP-Cache-Transformo script pode defini-lo

Referência: AMP-Cache-Transform HTTP request header

CMCD-Objecto script pode defini-lo

Referência: CTA, CTA-5004 Common Media Client Data

CMCD-Requesto script pode defini-lo

Referência: CTA, CTA-5004 Common Media Client Data

CMCD-Sessiono script pode defini-lo

Referência: CTA, CTA-5004 Common Media Client Data

CMCD-Statuso script pode defini-lo

Referência: CTA, CTA-5004 Common Media Client Data

CMSD-Dynamico script pode defini-lo

Referência: CTA, CTA-5006 Common Media Server Data (CMSD)

CMSD-Statico script pode defini-lo

Referência: CTA, CTA-5006 Common Media Server Data (CMSD)

Configuration-Contexto script pode defini-lo

Referência: OSLC Configuration Management Version 1.0. Part 3

CTA-Common-Access-Tokeno script pode defini-lo

Referência: CTA, Chris_Lemmons

EDIINT-Featureso script pode defini-lo

Referência: RFC 6017

Isolationo script pode defini-lo

Referência: OData Version 4.01 Part 1, OASIS, Chet_Ensign

Permissions-Policyo script pode defini-lo

Referência: Permissions Policy

Repeatability-Client-IDo script pode defini-lo

Referência: Repeatable Requests Version 1.0, OASIS, Chet_Ensign

Repeatability-First-Sento script pode defini-lo

Referência: Repeatable Requests Version 1.0, OASIS, Chet_Ensign

Repeatability-Request-IDo script pode defini-lo

Referência: Repeatable Requests Version 1.0, OASIS, Chet_Ensign

Repeatability-Resulto script pode defini-lo

Referência: Repeatable Requests Version 1.0, OASIS, Chet_Ensign

Reporting-Endpointso script pode defini-lo

Referência: Reporting API

Sec-Fetch-Storage-Accessfechado por prefixoToken

Referência: privacycg.github.io

Sec-GPCfechado por prefixo

Referência: Global Privacy Control (GPC)

Surrogate-Capabilityo script pode defini-lo

Referência: Edge Architecture Specification

Surrogate-Controlo script pode defini-lo

Referência: Edge Architecture Specification

Timing-Allow-Origino script pode defini-lo

Referência: Resource Timing Level 1

Desaconselhados

Continuam registados, e pedem-lhe que não os use.

Accept-Charseto script não pode defini-lo

Referência: RFC 9110 §12.5.2

C-PEP-Infoo script pode defini-lo

Referência: PEP - an Extension Mechanism for HTTP

[Status change of HTTP experiments to Historic]

Content-IDo script pode defini-lo

Referência: The HTTP Distribution and Replication Protocol

Differential-IDo script pode defini-lo

Referência: The HTTP Distribution and Replication Protocol

Expect-CTo script pode defini-lo

Referência: RFC 9163

Obsoleted by [IESG] [HTTPBIS]

Pragmao script pode defini-lo

Referência: RFC 9111 §5.4

Protocol-Infoo script pode defini-lo

Referência: White Paper

Protocol-Queryo script pode defini-lo

Referência: White Paper

Substituídos

Substituídos. Estão listados para se perceber tráfego antigo, não para gerar tráfego novo.

Access-Controlo script pode defini-lo

Referência: Access Control for Cross-site Requests

C-Exto script pode defini-lo

Referência: RFC 2774

[Status change of HTTP experiments to Historic]

C-Mano script pode defini-lo

Referência: RFC 2774

[Status change of HTTP experiments to Historic]

C-Opto script pode defini-lo

Referência: RFC 2774

[Status change of HTTP experiments to Historic]

C-PEPo script pode defini-lo

Referência: PEP - an Extension Mechanism for HTTP

[Status change of HTTP experiments to Historic]

Content-Baseo script pode defini-lo

Referência: RFC 2068

Obsoleted by [RFC 2616: Hypertext Transfer Protocol -- HTTP/1.1]

Content-MD5o script pode defini-lo

Referência: RFC 2616 §14.15

Obsoleted by [RFC 7231, Appendix B: Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content]

Content-Script-Typeo script pode defini-lo

Referência: HTML 4.01 Specification

Content-Style-Typeo script pode defini-lo

Referência: HTML 4.01 Specification

Content-Versiono script pode defini-lo

Referência: RFC 2068

Cookie2o script não pode defini-lo

Referência: RFC 2965

Obsoleted by [RFC 6265: HTTP State Management Mechanism]

Default-Styleo script pode defini-lo

Referência: HTML 4.01 Specification

Derived-Fromo script pode defini-lo

Referência: RFC 2068

Digesto script pode defini-lo

Referência: RFC 3230

Obsoleted by [RFC 9530, Section 1.3: Digest Fields]

Exto script pode defini-lo

Referência: RFC 2774

[Status change of HTTP experiments to Historic]

GetProfileo script pode defini-lo

Referência: Implementation of OPS Over HTTP

HTTP2-Settingso script pode defini-lo

Referência: RFC 7540 §3.2.1

Obsolete; see Section 11.1 of [RFC9113]

Mano script pode defini-lo

Referência: RFC 2774

[Status change of HTTP experiments to Historic]

Method-Checko script pode defini-lo

Referência: Access Control for Cross-site Requests

Method-Check-Expireso script pode defini-lo

Referência: Access Control for Cross-site Requests

Opto script pode defini-lo

Referência: RFC 2774

[Status change of HTTP experiments to Historic]

P3Po script pode defini-lo

Referência: The Platform for Privacy Preferences 1.0 (P3P1.0) Specification

PEPo script pode defini-lo

Referência: PEP - an Extension Mechanism for HTTP

PEP-Infoo script pode defini-lo

Referência: PEP - an Extension Mechanism for HTTP

PICS-Labelo script pode defini-lo

Referência: PICS Label Distribution Label Syntax and Communication Protocols

ProfileObjecto script pode defini-lo

Referência: Implementation of OPS Over HTTP

Protocolo script pode defini-lo

Referência: PICS Label Distribution Label Syntax and Communication Protocols

Protocol-Requesto script pode defini-lo

Referência: PICS Label Distribution Label Syntax and Communication Protocols

Proxy-Featuresfechado por prefixo

Referência: Notification for Proxy Caches

Proxy-Instructionfechado por prefixo

Referência: Notification for Proxy Caches

Publico script pode defini-lo

Referência: RFC 2068

Referer-Rooto script pode defini-lo

Referência: Access Control for Cross-site Requests

Safeo script pode defini-lo

Referência: RFC 2310

[Status change of HTTP experiments to Historic]

Security-Schemeo script pode defini-lo

Referência: RFC 2660

[Status change of HTTP experiments to Historic]

Set-Cookie2o script pode defini-loo script não o consegue ler

Referência: RFC 2965

Obsoleted by [RFC 6265: HTTP State Management Mechanism]

SetProfileo script pode defini-lo

Referência: Implementation of OPS Over HTTP

URIo script pode defini-lo

Referência: RFC 2068

Want-Digesto script pode defini-lo

Referência: RFC 3230

Obsoleted by [RFC 9530, Section 1.3: Digest Fields]

Warningo script pode defini-lo

Referência: RFC 9111 §5.5

Lido do registo da IANA na data indicada. O registo não para de mudar; uma tabela que não diz quando foi tirada está a afirmar em silêncio que continua atual. 2026-08-02

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

Lista de cabeçalhos HTTP

Os 257 campos registados, cada um com o estado que o registo lhe dá e com a única coisa que o registo não anota: se o navegador deixa um script defini-lo.

O que é a lista de cabeçalhos HTTP?

Cada pedido e cada resposta HTTP levam campos de cabeçalho — Content-Type, Cache-Control, Authorization e companhia — e quais os nomes verdadeiros não é questão de opinião. A IANA mantém o registo de nomes de campo HTTP, e esta página é esse registo: 257 campos, cada um com o estado que a IANA lhe deu e a especificação de onde vem.

Quase todas as listas publicadas de cabeçalhos HTTP estão arrumadas em cabeçalhos de pedido e cabeçalhos de resposta. Vale a pena saber que o registo não tem essa coluna. Os seus cinco campos são o nome, o estado, o tipo estruturado, a referência e um comentário livre — nada sobre a direção. E há muitos campos que viajam nos dois sentidos, portanto a separação que se vê por aí é o critério de um editor apresentado como um facto.

O que o registo anota mesmo é o estado, e aí faz uma distinção que as tabelas copiadas achatam. 187 campos são permanentes, 23 provisórios e ainda por assentar, 8 desaconselhados e 39 substituídos — guardados para se poder ler tráfego antigo, não para o novo os usar. Quase um quinto do registo é coisa que não devia estar a enviar.

Como usar

  1. Pesquise por nome, por referência ou por comentário. Uma só caixa cobre os três, e os resultados são ordenados por relevância em vez de apenas filtrados: o nome exato aparece primeiro mesmo quando alfabeticamente ficaria em último, portanto procurar range dá-lhe Range e não Accept-Ranges.
  2. Repare na etiqueta ao lado de cada nome. Diz se o navegador deixa um script pôr esse cabeçalho num pedido, e os que recusa levam marcada a regra que os recusa.
  3. Veja o título de estado por cima do grupo. Os campos vão agrupados pelo que a IANA diz deles, portanto um nome desaconselhado ou substituído nunca fica calado ao lado de um atual.

A coluna que falta, e a que realmente responde

A pergunta com que as pessoas chegam não é se um cabeçalho é de pedido ou de resposta. É porque é que defini-lo a partir do JavaScript não faz nada e nem sequer avisa. Essa resposta está noutra especificação: a norma Fetch define aquilo a que chama um cabeçalho de pedido proibido, e o navegador descarta qualquer tentativa de o definir para continuar a controlar o que envia.

Não é uma lista. São 21 nomes — Cookie, Host, Origin, Referer, Connection e por aí — mais dois prefixos: proxy- e sec-. A metade dos prefixos é a interessante, porque não tem limite. Nenhum cabeçalho cujo nome comece por Sec- alguma vez poderá ser definido pelo código da página, incluindo os que ninguém inventou ainda, e a norma diz porquê: o espaço de nomes está reservado para se poderem cunhar cabeçalhos a salvo das APIs que deixam quem programa definir cabeçalhos. É precisamente isso que dá valor a um cabeçalho como o Sec-Fetch-Site: uma página não o consegue forjar.

Dos 257 campos registados, 218 são dos que um script pode definir, 20 são recusados pelo nome e 19 pelo prefixo. Um nome da lista de proibidos nem sequer está no registo: DNT. O navegador recusa que um script defina um cabeçalho que a IANA nunca teve.

Há também uma regra mais pequena no sentido contrário. Um script nunca consegue ler Set-Cookie nem Set-Cookie2 de uma resposta, digam o que disserem os cabeçalhos CORS, e é por isso que um cookie posto por uma API de outra origem é invisível para o código que a chamou.

Limites honestos, e três coisas que vale a pena saber

Isto é uma fotografia. O registo ganha entradas, e a data em que foi lido está impressa por baixo da lista em vez de ficar ao seu palpite. Uma tabela que não diz quando foi tirada está a afirmar em silêncio que se mantém atual para sempre.

O registo escreve ainda quatro dos seus próprios estados com maiúscula inicial, e os quatro são campos Sec-Fetch-. Um filtro de correspondência exata com permanent devolve 183 em vez de 187 e deixa de fora precisamente os cabeçalhos de segurança modernos do fetch metadata. É uma armadilha a sério para quem leia o CSV por sua conta, e é por isso que esta página normaliza a escrita.

Duas entradas não são cabeçalhos. Close e um asterisco sozinho estão registados com o comentário reserved, ou seja, registados para que ninguém os registe. O estado deles é permanente, portanto o estado por si só não lhe dirá que são inúteis — e sim, um asterisco é mesmo um nome de campo HTTP registado.

Alguns nomes que espera não estão lá. X-Forwarded-For, X-Requested-With, X-Powered-By e X-XSS-Protection usam-se em todo o lado e não estão registados em lado nenhum; o parente registado do primeiro é o Forwarded. No registo há exatamente dois campos X-, e um deles é o X-Frame-Options — listado como permanente e não como substituído, o que contraria a crença comum de que o frame-ancestors do CSP o reformou.

Mais um aviso sobre a etiqueta da lista CORS. Um cabeçalho dessa lista só escapa ao preflight com certos valores: o Content-Type qualifica-se com três tipos de media, portanto application/json provoca preflight e text/plain não, e todo o valor da lista tem um teto de 128 bytes. Estar na lista é propriedade do nome e do valor ao mesmo tempo, portanto trate essa etiqueta como uma pista e não como um veredicto.

Porque é grátis

Porque não custa nada manter. A lista faz parte da página, a pesquisa acontece no seu navegador e não se envia nem se regista nada.

Os dados saem do próprio ficheiro legível por máquina da IANA e não de outra lista, as regras do script saem da norma Fetch, e o guião que lê ambos está guardado ao lado dos dados que produz para que os números desta página se possam reproduzir.