Кратко

  • RFC 3380 оценивал допустимый запрос Set-Job-Attributes как полностью предложенное состояние, а не как набор полей, которые можно применить частично.
  • Несовместимый атрибут или значение требовали отклонить весь запрос и оставить задание без изменений; это не отменяло задание и не доказывало физическую печать.

В сентябре 2002 года протокол Internet Printing Protocol (IPP) получил более чёткую административную границу. Пользователь или оператор мог после отправки заметить, что не указал параметр послепечатной обработки. RFC 3380 предлагал необязательную альтернативу отмене и повторной отправке: изменить атрибуты существующего объекта задания.

Принтер должен был оценить предложенные значения вместе с атрибутами, которые клиент оставил нетронутыми. Вопрос был контрфактическим: принял бы принтер новое задание с таким итоговым набором, если установить ipp-attribute-fidelity=true? Если да, изменение следовало принять. Иначе запрос следовало отклонить, сохранив существующее задание без изменений. Нельзя было просто отбросить неподдерживаемый, недоступный для настройки или конфликтующий атрибут, применив остальные. Запрос действовал по принципу «всё или ничего».

Это не позволяло клиенту спутать частично изменённое задание с запрошенным состоянием. Ответ мог указать проблемные атрибуты, а объект сохранял прежнее состояние. Авторизация проверялась отдельно: аутентифицированный инициатор должен был быть владельцем задания, оператором или администратором. Право отправить запрос не делало несовместимое сочетание допустимым.

RFC также определил атомарное обновление атрибутов принтера и добавил Get-Printer-Supported-Values для обнаружения допустимых значений некоторых настраиваемых атрибутов. printer-xri-supported позволял совместно обновлять связанные описания URI, аутентификации и безопасности. Однако операции Set были необязательными. Стандарт задаёт контракт, но не доказывает, что конкретный принтер реализовал его, клиент им воспользовался или страница была напечатана.

RFC 3196 относится к другому моменту: когда принтер может дать окончательный ответ после получения данных документа. RFC 3380 касается изменения атрибутов задания. Принятое или отклонённое обновление не доказывает полного получения данных, обработки или печати. Событие протокола фиксирует переход состояния, а не физический результат. Первичные источники: RFC 3380, RFC 2911 и RFC 3196. Расширение было необязательным; тексты не доказывают его распространение или совместимость реализаций.

Источники