As we have just covered, a key requirement in any message exchange is to ensure that messages are routed to the appropriate service endpoint. Initial web service implementations were built using SOAP over HTTP, primarily since HTTP is well understood and is able to leverage the existing Internet infrastructure.
Using this approach, a URI is used to identify a service endpoint, which can then be used to route a message using the HTTP protocol from the client to the provider. Additional information, such as the action to be performed at the endpoint is encoded in HTTP headers. While this is a simple yet powerful approach, it has a number of limitations.
If we look at the following SOAP message sent over HTTP, ...