Resumo

  • RFC 3648 exige que ORDERPATCH aplique todas as instruções ou nenhuma, mas, ao mudar a semântica, permite que a ordem relativa dos membros omitidos seja escolhida pelo servidor.
  • No MOVE dentro do mesmo pai, a posição também pode ser preservada ou o membro pode ser removido e readicionado ao fim se não houver Position; uma resposta bem-sucedida não basta como recibo da sequência.

O RFC 3648 transforma a ordem em estado da coleção. PROPFIND em uma coleção ordenada deve seguir essa ordem; em uma coleção não ordenada, não há garantia de repetição. Cada membro interno aparece exatamente uma vez, e um elemento externo não pode ser inserido na sequência.

ORDERPATCH processa order-member na ordem do documento e deve concluir tudo ou restaurar o estado anterior. É uma garantia forte, porém delimitada. Quando a semântica de ordenação não muda, membros omitidos preservam posição. Quando muda, os membros nomeados ficam primeiro e todos os demais vêm depois, com ordem relativa definida pelo servidor. Um lote pode ser perfeitamente atômico e ainda não descrever uma lista completa.

A latitude reaparece em MOVE. Dentro do mesmo pai, o servidor pode apenas renomear e preservar a posição, ou remover e adicionar. Sem Position, a regra de novo membro o coloca no fim. A edição em texto registra as duas opções e cogita que experiência futura possa reduzi-las. Ela não prova qual opção um servidor atual usa.

Uma coleção tem uma única ordenação. Sequências distintas sobre os mesmos recursos exigem coleções distintas. O estado é o mesmo por qualquer URI que acesse aquela coleção e está sujeito a bloqueios e ACL. O RFC 5842 ajuda a separar múltiplos vínculos para um recurso da ordem própria de cada coleção.

DAV:ordering-type é protegido. DAV:custom declara ordem sem semântica portátil; DAV:unordered rejeita a promessa de enumeração estável. A URI que identifica um tipo não deve ser dereferenciada automaticamente, pois o RFC alerta para o risco de muitos clientes produzirem tráfego contra um alvo. Identificar significado não é chamar um serviço.

Position oferece first, last, before e after e permanece no registro IANA de campos HTTP. O segmento de referência deve ser membro atual e diferente do afetado. Também é preciso satisfazer bloqueio e autorização. O RFC 3744 fornece a camada de controle de acesso; conhecer um segmento não concede poder de reordenar.

O recibo direto é um PROPFIND Depth: 1 completo. Depth: infinity pode intercalar descendentes mantendo apenas a ordem local de cada coleção. O RFC 2518, base histórica usada pelo RFC 3648, foi substituído pelo RFC 4918. Nenhum deles afirma que Multi-Status ou 2xx comprova o menu que o leitor recebeu.

O RFC 3253 acrescenta DeltaV. Versões de coleção podem registrar o tipo de ordem e a ordem de membros versionados. Após UPDATE ou MERGE, membros não versionados recebem posição definida pelo servidor. O conjunto completo precisa ser relido mesmo quando a restauração da versão teve êxito.

Suporte é opcional e deve ser descoberto via OPTIONS, classe ordered-collections, Allow e propriedades vivas por recurso. O RFC 5689 amplia MKCOL, mas aceitar um corpo estendido não comprova que a ordenação solicitada foi aplicada. Da mesma forma, validadores dos RFC 7232 e RFC 9110 só protegem a ordem se a implementação efetivamente os vincular a esse estado; RFC 3648 não cria um token de revisão específico.

O termo segment vem do RFC 2396, enquanto o RFC 3986 atualiza a sintaxe geral de URI. Em before/after, ele é operando da associação presente, não identidade durável nem autorização.

A linhagem documental pode ser conferida no Datatracker, na página informativa, no histórico e nos errata. Esses registros não substituem telemetria do servidor.

A primazia do código em execução, a especificação inicial mínima e as camadas da realidade de Heng Lu mostram por que atomicidade, intenção e observação devem ficar separadas. O padrão define um mínimo comum e opções; o código escolhe; a leitura revela; a apresentação acrescenta outra camada.

O registro operacional precisa guardar identidade e URI da coleção, ordering-type, sequência completa anterior, capacidade, ACL e bloqueios, bytes de ORDERPATCH ou MOVE, membros omitidos, Position e segmento, resposta, sequência Depth: 1 posterior, versão ou validator realmente exposto e ordem mostrada ao consumidor. A cauda não declarada deve aparecer como escolha do servidor, não como intenção presumida.