w3school example web-services soap http-headers soapheader

web-services - example - soapui header authentication



Encabezados SOAP versus encabezados HTTP (1)

Estoy trabajando en un programa que usa servicios web y para eso necesito envolver algunos datos como encabezados para el mensaje.

¿Quiero preguntar si es equivalente a colocar estos datos como encabezados SOAP o como encabezados HTTP?


Los encabezados SOAP contienen información específica de la aplicación relacionada con el mensaje SOAP. Por lo general, contienen información de enrutamiento, información de autenticación, semántica de transacciones, etc. Son específicos del mensaje SOAP y son independientes del transporte que utiliza SOAP (en el ámbito de esta publicación: HTTP).

Los encabezados HTTP definen los parámetros operativos de la transacción HTTP, como el tipo de contenido de lo que se transmite, la longitud del contenido, las directivas de caché para clientes o proxies, etc. Estos son específicos de HTTP y son independientes de lo que realmente se transmite con HTTP ( en este caso el XML de SOAP).

Por supuesto, podría usar tanto los encabezados HTTP como los encabezados SOAP para proporcionar información específica de la aplicación sobre el mensaje SOAP. El encabezado HTTP SOAPAction fue un movimiento en esta dirección para SOAP 1.1. Aunque fue útil para los servidores enrutar los mensajes de manera eficiente sin la necesidad de mirar dentro del XML de SOAP (a veces es imposible si el mensaje está cifrado y solo el receptor final sabe cómo descifrarlo) en su mayoría causó confusión y luego se eliminó en SOAP 1.2. (y en su lugar es un parámetro de action opcional en el tipo de medio application/soap+xml media , que también es un valor en los encabezados HTTP ... oh bien ...: D).

Como conclusión, los encabezados SOAP y los encabezados HTTP no son lo mismo . Aunque hasta cierto punto podría sustituir los encabezados SOAP por encabezados HTTP personalizados definidos por el usuario, la mayoría de las veces es una mala idea.

Si los datos corresponden al servicio web, deben colocarse dentro de los encabezados de SOAP. Los encabezados HTTP generalmente se detienen en el servidor web, mientras que el mensaje SOAP en su totalidad se transferirá al receptor final que necesita los datos (tal vez incluso a través de más intermediarios que también podrían necesitarlos).