4.13. Промежуточное ответное сообщение IntermediateResponse
Операция Search предоставляет механизм, позволяющий возвращать несколько ответных сообщений для одного запроса Search, а другие операции, по своей природе, не предоставляют возможности возвращения нескольких ответных сообщений.
Сообщение IntermediateResponse предоставляет общий механизм для определения операций типа "один запрос/несколько ответов" в LDAP. Данное сообщение предназначено для использования в сочетании с расширенной операцией Extended для определения новых операций типа "один запрос/несколько ответов", либо в сочетании с элементом управления, когда расширение существующих операций LDAP осуществляется таким образом, что от них требуется возвращать промежуточную ответную информацию.
Предполагается, что в определениях и описаниях операций-расширений Extended и элементов управления, в которых будут использоваться промежуточные сообщения IntermediateResponse, будут определены условия, при которых сервером могут посылаться сообщения IntermediateResponse, а также разъяснение того, что означает посылка сообщения IntermediateResponse при наступлении конкретного условия.
IntermediateResponse ::= [APPLICATION 25] SEQUENCE { responseName [0] LDAPOID OPTIONAL, responseValue [1] OCTET STRING OPTIONAL }
Не нужно (SHALL NOT) возвращать клиенту сообщений IntermediateResponse, если клиент не посылает запрос, в котором специально требуется их возвращение. В этом документе определяются две формы таких затребований: в расширенной операции Extended и в элементе управления запроса. При определении сообщений IntermediateResponse в каких-либо документах, оговаривается манера, в которой будет затребоваться возвращение этих сообщений (то есть, в спецификации операции-расширения Extended или элемента управления запроса, которые их используют). Такие спецификации включают в себя:
идентификатор объекта OBJECT IDENTIFIER (если он есть), который назначается в поле responseName,
формат содержимого поля responseValue (если оно предусмотрено), и
семантику, ассоциируемую с сообщением IntermediateResponse.
Расширениям, позволяющим возвращать несколько типов сообщений IntermediateResponse, нужно (SHALL) идентифицировать эти типы с помощью уникальных значений в поле responseName (причём в одном из этих сообщений, по спецификации, значение в поле responseName может отсутствовать).
В разделах 4.13.1 и 4.13.2 описаны дополнительные требования к включению полей responseName и responseValue в сообщения IntermediateResponse.