Skip to content

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

208 Already Reported

O 208 Already Reported é usado dentro de um corpo WebDAV 207 Multi-Status para dizer que os membros de uma coleção já foram listados antes na mesma resposta, por outro binding. Ele evita que um PROPFIND com Depth: infinity liste a mesma pasta duas vezes ou entre em loop.

Dados sobre este código de status
Classe2xx, Sucesso
Definido emRFC 5842 §7.1
Pode ir para o cache por padrãoSó com Cache-Control ou Expires explícitos
Pode repetir o pedidoNão se aplica; só aparece dentro de um corpo 207
Cabeçalhos relevantes
  • DAV: cabeçalho do pedido; o cliente precisa sinalizar suporte a bind antes de o servidor usar 208

O que significa o 208

A RFC 5842 (uma RFC experimental) acrescenta bindings ao WebDAV, que permitem que uma coleção apareça em vários caminhos, parecido com hard links. A seção 7.1 diz que, quando um pedido com Depth: infinity chega de novo à mesma coleção, só o primeiro binding sai com 200; os seguintes recebem 208 e os descendentes são pulados.

O servidor NÃO DEVE usar 208 a menos que o cliente tenha anunciado suporte pelo cabeçalho DAV do pedido. Para clientes antigos, o servidor que encontra um loop de bindings devolve 508 Loop Detected.

Como enviar um 208

Nunca envie 208 como status principal; ele só faz sentido dentro de um corpo 207 Multi-Status.

Express (Node.js)
// Fragment of a 207 body for a bind-aware client (DAV: bind)
const multistatus = `<D:multistatus xmlns:D="DAV:">
  <D:response>
    <D:href>/Coll/</D:href>
    <D:propstat><D:prop><D:displayname>Coll</D:displayname></D:prop>
      <D:status>HTTP/1.1 200 OK</D:status></D:propstat>
  </D:response>
  <D:response>
    <D:href>/Coll/Bar/</D:href>
    <D:propstat><D:prop><D:displayname>Bar</D:displayname></D:prop>
      <D:status>HTTP/1.1 208 Already Reported</D:status></D:propstat>
  </D:response>
</D:multistatus>`;
res.status(207).type('application/xml').send(multistatus);

Costuma ser confundido com

208 vs 207
O 207 é o código principal da resposta; o 208 é um dos códigos por item que podem aparecer no corpo dele.
208 vs 508
O 508 Loop Detected interrompe a operação ao achar um loop de bindings; o 208 deixa seguir, pulando a coleção repetida.

Perguntas frequentes

Vou ver um 208 no navegador algum dia?
Quase certamente não. Ele só é usado por servidores WebDAV que implementam bindings da RFC 5842, dentro de respostas 207 para clientes que conhecem bindings.
Quando o servidor pode usar o 208?
Só em pedidos Depth: infinity de clientes que enviaram o cabeçalho DAV indicando suporte a bind. Fora disso, ao achar um loop, o servidor deve devolver 508 Loop Detected.
O 208 Already Reported é um código padrão?
Está registrado na IANA, mas o documento que o define, a RFC 5842, é uma RFC experimental, não da trilha de padrões.

Revisado em por Arielton Oberek.