Skip to content

Código de status HTTP · Sucesso (2xx)

203 Non-Authoritative Information

O 203 Non-Authoritative Information significa que o pedido deu certo, mas um proxy de transformação alterou o conteúdo que o servidor de origem enviou no 200. Quase nunca aparece: a maioria dos proxies que reescrevem conteúdo, como compressores de imagem ou banners injetados, mantém o status 200.

Dados sobre este código de status
Classe2xx, Sucesso
Definido emRFC 9110 §15.3.4
Pode ir para o cache por padrãoSim, de forma heurística
Pode repetir o pedidoNão é preciso; o pedido deu certo
Cabeçalhos relevantes
  • Cache-Control: a origem pode enviar no-transform para proibir proxies de alterar o conteúdo

O que significa o 203

A RFC 9110, seção 15.3.4, permite que um proxy que transformou o conteúdo (seção 7.7) avise quem recebe, porque isso pode importar depois: uma revalidação desse conteúdo talvez só faça sentido pela mesma cadeia de proxies. Assim como o 200, o 203 pode ser armazenado em cache de forma heurística.

Servidores de origem não devem enviar 203 sobre o próprio conteúdo. Se você mantém a origem e não quer intermediários recomprimindo imagens ou minificando HTML, envie Cache-Control: no-transform, que a RFC 9111 manda os proxies respeitarem.

Quando usar

  • Só num proxy ou gateway que reescreve um 200 vindo do upstream: tradução, minificação, recompressão ou filtragem do corpo.

Como enviar um 203

Só um proxy que transforma conteúdo deve emitir 203, por isso há um exemplo só, em vez da série de frameworks.

Express (Node.js)
// A proxy that rewrites upstream HTML says so with 203
app.get('/*path', async (req, res) => {
  const upstream = await fetch(`https://origin.example${req.originalUrl}`);
  const html = (await upstream.text()).replaceAll('http://', 'https://');
  res
    .status(upstream.status === 200 ? 203 : upstream.status)
    .type('html')
    .send(html);
});

Costuma ser confundido com

203 vs 200
O 200 é a resposta da própria origem; o 203 é essa mesma resposta depois que um intermediário alterou o conteúdo.

Perguntas frequentes

Por que quase nunca vejo um 203?
Poucos proxies se dão ao trabalho de mudar o status quando alteram o conteúdo; a maioria mantém 200. Um 203 geralmente indica um proxy corporativo ou de operadora que segue a especificação à risca.
Como impedir que proxies alterem minhas respostas?
Envie Cache-Control: no-transform e sirva por HTTPS. Proxies que seguem o padrão não podem transformar conteúdo marcado com no-transform, e o HTTPS impede que proxies no meio do caminho leiam o corpo.
Uma resposta 203 pode ir para o cache?
Pode. A RFC 9110 torna o 203 armazenável de forma heurística, igual ao 200, a menos que o método ou controles explícitos de cache digam o contrário.

Revisado em por Arielton Oberek.