Interested Article - Internet Printing Protocol

IPP ( англ. Internet Printing Protocol — «протокол межсетевой печати», «протокол печати через Интернет») — сетевой протокол прикладного уровня для передачи документов на печать. Является перегруженной версией HTTP , то есть придаёт всем известному протоколу передачи гипертекста новое значение. Помимо расширенных функций управления печатью, поддерживает контроль доступа, аутентификацию и шифрование ( SSL ).

Типичный адрес принтера указывается так:

http://server:631/printers/myprinter

На корневой странице ( http://server:631/ ) может находиться веб-интерфейс управления, а также ссылки на область загрузки драйверов.

Чтобы посмотреть статус принтера, пользователь вводит в своём Web-браузере:

<имя-хоста>/printers/;

При использовании IIS , на клиентских машинах для аутентификации и просмотра URL по протоколу IPP требуется браузер Internet Explorer 5.01 и старше, поскольку только он поддерживает механизм аутентификации, используемый в IIS .

Использование IPP существенно упрощает установку принтера на локальной клиентской машине: достаточно указать URL/printers/ и выбрать предпочтительный для клиента принтер из списка. Далее следует “подключиться” (connect) к принтеру, после чего драйверы принтера будут загружены на удалённую машину и установлены на ней.
Для ОС Linux , достаточно просто подключиться к принтеру по URL. Более того, современные ОС на основе Linux c GUI , например Ubuntu , сами находят и подключают такие принтеры, имеющиеся в локальной сети.

Вместо стандартного IPP-порта 631/tcp часто используется 80/tcp (стандартный для HTTP). Для шифрованного трафика применяется либо 443/tcp (стандартный для HTTP over SSL ), либо тот же 631.

Формат сообщения

коды состояния
Код Значение
0x0000 – 0x00FF Успешное выполнение
0x0100 – 0x01FF Информация
0x0200 – 0x02FF Перенаправление
0x0400 – 0x04FF Ошибка клиента
0x0500 – 0x05FF Ошибка сервера

Тело HTTP сообщения имеет Content-type: application/ipp и содержит следующие поля:

  • version-number (2 байта) — старший и младший номер версии протокола, текущее значение 0x0101;
  • operation-id или status-code (2 байта) — код операции (запрос) или код состояния (ответ);
  • request-id (4 байта) — уникальный номер для сопоставления запросов и ответов;
  • attribute-group — группа атрибутов, поле может включаться ноль или более раз:
    • begin-attribute-group-tag (1 байт) — указывает начало группы атрибутов и идентифицирует её тип;
    • attribute — ноль или более полей атрибутов:
      • attribute-with-one-value — атрибут с одним значением или первое значение атрибута, имеющего несколько значений:
        • value-tag (1 байт) — синтаксис атрибута (целое значение, перечисляемое, строка и т.д.);
        • name-length (2 байта) — длина имени атрибута в байтах;
        • name — имя атрибута;
        • value-length (2 байта) — длина значения атрибута в байтах;
        • value — значение атрибута;
      • additional-value — ноль или более полей значений атрибута:
        • value-tag (1 байт) — синтаксис атрибута;
        • name-length (2 байта) — 0x0000;
        • value-length (2 байта) — длина значения атрибута в байтах;
        • value — значение атрибута;
  • end-of-attributes-tag (1 байт) — 0x03, указывает конец полей атрибутов;
  • data — данные, необходимые для операции.

См. также

Ссылки

  • Internet Printing Protocol/1.0: Encoding and Transport (устарел).
  • Internet Printing Protocol/1.0: Model and Semantics (устарел).
  • Design Goals for an Internet Printing Protocol .
  • Rationale for the Structure of the Model and Protocol for IPP .
  • Mapping between LPD and IPP Protocols .
  • Internet Printing Protocol/1.1: Encoding and Transport .
  • Internet Printing Protocol/1.1: Model and Semantics .
  • // Самсонов А. Протоколы сетевой печати. — 28 февраля 2006 г.
Источник —

Same as Internet Printing Protocol