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.
| Classe | 2xx, Sucesso |
|---|---|
| Definido em | RFC 5842 §7.1 |
| Pode ir para o cache por padrão | Só com Cache-Control ou Expires explícitos |
| Pode repetir o pedido | Não se aplica; só aparece dentro de um corpo 207 |
| Cabeçalhos relevantes |
|
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.
// 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.