Вы можете рассматривать это как разницу между данными сообщения (MessageBodyMember
) и метаданными сообщения (MessageHeader
).В WCF имеется множество встроенных стандартизированных заголовков, которые касаются адресации, безопасности, надежного обмена сообщениями и т. Д. В реализации WCF по умолчанию это относится только к SOAP.
Существует также общее правило, что в сложной архитектуре обмена сообщениямимогут быть посредники, которые читают метаданные и используют их для некоторой обработки и маршрутизации сообщений (они могут даже добавлять дополнительные метаданные), но они никогда не должны вмешиваться в тело сообщения (данные).В случае безопасности они могут даже не иметь возможности прочитать тело сообщения или некоторые метаданные (заголовки).
В случае WCF вы можете установить разные требования безопасности (нет, подписано, подписано и зашифровано) для каждого заголовка сообщения и для всего тела сообщения (WCF не поддерживает отдельные требования безопасности для разных частей тела),Это также может привести к принятию решения об использовании элемента body или заголовка.
Например, если вы решите выполнить некоторую пользовательскую аутентификацию или передать некоторую информацию о клиенте в каждом сообщении, вы, вероятно, создадите собственный заголовок для этого, но для реальных данных.полезная нагрузка, связанная с операцией, будет частью тела сообщения.