Кратко

  • DAV:ordering-type описывает семантику коллекции; его URI не обязан быть сервисом, а автоматическое разыменование может создать нагрузку на выбранную цель.
  • При MOVE внутри одного родителя RFC 3648 допускает сохранение позиции или удаление с повторным добавлением в конец без Position; декларация, выполнение и прочитанный порядок требуют разных доказательств.

RFC 3648 задаёт для WebDAV клиентское управление упорядоченными коллекциями. В неупорядоченной коллекции повторный PROPFIND не обещает одинаковую выдачу. В упорядоченной сервер следует её последовательности, включает каждый внутренний член ровно один раз и не включает посторонний URI.

Свойство DAV:ordering-type защищено. Значение DAV:custom говорит, что порядок есть, но не обещает переносимого смысла. DAV:unordered отрицает повторяемую последовательность. Иной тип может называться URI, однако раздел безопасности предостерегает от автоматического получения ресурса по нему: так большое число клиентов можно направить к цели и создать отказ в обслуживании. Символическая ссылка не является командой.

Аналогичная граница действует для MOVE. Внутри одного родителя сервер вправе переименовать член с сохранением места либо удалить и добавить его заново. Во втором случае отсутствие Position означает добавление в конец. Текстовая версия прямо сохраняет обе реализации. Это граница стандарта, а не телеметрия какого-либо продукта.

Поле Position задаёт first, last, before или after и остаётся в реестре HTTP-полей IANA. Оно выражает намерение, но ссылочный segment должен оставаться текущим и отличным членом. Нужны также разрешение и соблюдённая блокировка. RFC 3744 определяет слой доступа; известный URI не даёт права менять порядок.

Порядок принадлежит коллекции и одинаков через её URI доступа. У одной коллекции один порядок; несколько последовательностей над теми же ресурсами требуют нескольких коллекций. RFC 5842 позволяет отделить множество привязок к одному ресурсу от состояния разных коллекций.

ORDERPATCH выполняет инструкции в порядке документа и применяет все либо ни одной, возвращая прежнее состояние при ошибке. Но при смене семантики названные члены идут первыми, а относительный порядок пропущенных выбирает сервер. Атомарная операция может оставить хвост последовательности намеренно неопределённым и ничего не доказывает о кэшах или интерфейсе.

Прямое чтение результата — PROPFIND с Depth: 1. Depth: infinity может перемешивать потомков при сохранении локальных порядков и не является единой плоской последовательностью. Базовый RFC 2518 позднее заменён RFC 4918; ни один код ответа не свидетельствует автоматически о представлении для пользователя.

RFC 3253 предоставляет DeltaV. Версия коллекции сохраняет тип порядка и порядок членов под управлением версий, но после UPDATE или MERGE место остальных членов определяет сервер. Поэтому факт восстановления версии следует дополнить полной считанной последовательностью.

Поддержка необязательна. Её выясняют для конкретного ресурса через OPTIONS, класс ordered-collections, Allow и живые свойства. RFC 5689 расширяет тело MKCOL, но принятие расширенного запроса не доказывает применение нужной семантики.

Условные запросы и валидаторы из RFC 7232 и RFC 9110 способны помочь конкретной реализации. RFC 3648 не определяет специальный номер ревизии или дайджест порядка. В квитанции нужно указывать фактически раскрытый валидатор и проверенное им состояние.

Термин segment взят из RFC 2396, а общая URI-синтаксическая основа обновлена RFC 3986. Segment для before/after — операнд текущего членства, не постоянная идентичность, полномочие или обещание доступности.

Происхождение документа подтверждают Datatracker, информационная страница RFC Editor, история и errata. Они не показывают выбор работающего сервера.

Принципы Heng Lu о первичности работающего кода, минимальной начальной спецификации и слоях реальности дают практический тест. URI объявляет смысл, стандарт очерчивает варианты, код выбирает, серверное чтение наблюдает, интерфейс представляет. Нельзя заставлять один слой говорить за остальные.

Квитанция должна связать идентичность и URI коллекции, ordering-type без автоматического разыменования, полную исходную последовательность, возможности, ACL и блокировки, точные байты MOVE или ORDERPATCH, Position, ответ, полный Depth: 1 результат, реальную версию или validator и порядок на потребительской поверхности. Отсутствующие связи остаются неопределённостью.