Заголовок

Заголовки SOAP-сообщений являются необязательными элементами сообщений, которые могут отсутствовать вовсе, либо присутствовать в произвольном количестве. По своей сути заголовки являются некоторыми элементами расширения протокола. Их семантика не определена в стандарте SOAP, а задается с помощью связанной схемы, которая задается дочернем элементе заголовка.

Заголовки являются основным механизмом, позволяющим расширить функциональность SOAP, например, добавив в него поддержку транзакций или механизмов аутентификации.

Например, следующий заголовок задает идентификатор пользователя и его пароль, которые должны быть обработаны получателем сообщения:

<soap12:Envelope xmlns:soap12="https://www.w3.org/2003/05/soap-envelope">

<soap12:Header>

<u:User xmlns:u="https://www.mephi.ru/order/user"

soap12:role="https://www.w3.org/2003/05/soap-

envelope/role/ultimateReceiver"

soap12:mustUnderstand="true">

<u:UserId>10</u:UserId>

<u:UserPassHash>324sd4dmj</u:UserPassHash>

</u:User>

</soap12:Header>

</soap12:Envelope>

Атрибут «mustUnderstand», определяемы для элементов заголовка, может потребовать у SOAP-процессора понять переданный заголовок, или в случае его непонимания отвергнуть это сообщение с соответсвующим сообщением об ошибке. Он преданазначен для того, чтобы не возникало ситуаций, когда получатель сообщения производит обработку сообщения с обязательным для понимания заголовком, не понимая смысла этого заголовка.

SOAP-сообщения могут передаваться через множество посредников, которые могут обрабатывать это сообщение в соответсвии с его заголовками. При этом существует возможность указать, какому из посредников предназначен данный заголовок. Эта возможность реализуется с помощью атрибута «role», который задает идентификатор роли посредника, которому предназначено это сообщение. В спецификации изначально заданы три роли: «next», «none» и «ultimateReceiver», однако этот набор может быть расширен другими ролями, которые могут быть определены для конкретного типа заголовков.

Если сообщение содержит заголовки, пренданзначиенные для промужуточного получателя, то ему запрещается передавать такую строку заголовка кому-либо из последующий получателей. Однако при этом не запрещено добавлять любые другие дополнительные строки заголовков.

Вообще, заголоки SOAP-сообщеинй можно сравнить с некоторой дополнительной информацией, которую наносят на конверт письма при его обработке на почте. Это могут быть штампы о получении письма, его сортировке, перенаправлении или даже записи почтальона, разносящего письма. Как и для сообщений SOAP, само содержимое письма не обрабатывается посрединками, производящими доставку письма, однако они могут некоторым образом общаться между собой передавая информацию на внешней стороне конверта.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: