SOAP means Simple Object Access Protocol is a type of communication protocol, a way to structure data prior to transmitting it and is based on XML standard. It is developed to enable communication between applications of different platforms and programming language via internet. It can use the range of protocols such as FTP, HTTP, SMTP, Post office protocol 3(POP3) to carry documents. In other words, it is an XML based protocol to transfer between computers.
A SOAP envelope indicates the start and end of the message, so that the receiver knows when an entire message has been received. In other words, a SOAP envelop is a packaging mechanism.
SOAP: In SOAP, communication between the client and web service happens using XML message. It specifies the communication rules like what are all the tags that should be used in XML and their meaning.
Restful: It uses architecture which use HTTP or similar protocols by restricting the interface to use standard operations like GET, PUT, POST, DELETE for HTTP.
The major obstacle faced by the users using SOAP is a firewall security mechanism. This lock all the ports leaving few like HTTP port 80 and the HTTP port used by SOAP that bypasses the firewall. The technical complaints against SOAP is that it mixes the specification for message transport with the specification for message structure.
Advantage of SOAP:
Put Address (): It is used to enter an address in the webpage. It carries address instance on the SOAP call.
Put Listing (): It is used to enable the insertion of a complete XML document into the webpage. It receives the XML file as an argument and transport the XML file to XML parser liason, which reads it and puts it as a parameter in the SOAP call.
Get Address (): It is used to determine a query name and retrieves the result that is best matched with a query. In the form of text string, the name is sent to the SOAP call.
GetAllListing (): It is used to return the complete list in an XML format.
SOA is a software design principle and an architectural pattern for implementing loosely coupled, reusable and coarse grained services. Using any protocols such as HTTP, HTTPS, JMS, SMTP, etc. you can implement SOA. The message can be in Data Transfer Objects or in XML.
While web service is an implementation technology and one of the ways to implement SOA.
JSON is standard to represent human readable data. SOAP is a protocol requirement for transmitting information and calling web-services using XML.
Application layer and transport layers of a network are used by SOAP. HTTP and SMTP are the valid application layer protocol used as transport for SOAP. HTTP is more preferable as it works well with current internet infrastructure especially with firewalls.
The SOAP requests can be sent via an HTTP GET method while the specification includes details on HTTP POST only.
The characteristic of SOAP element:
SOAP response would be like
HTTP/1.0 200 OK
Content Type: text/xml; char set=utf-8
Content-Length: nnn
<? xml version= “1.0”?>
<SOAP-ENV: Envelop
xmlns: SOAP-ENV= http://www.guru99.org/2003/05/soap-envelope”
SOAP-ENV: encoding style= http://www.guru99.org/2003/05/soap-encoding>
<SOAP-ENV: Body xmlns=http://www.xyz.org/quotation”>
<m:GetQuotationResponse>
<m:Quotation > Here is the Quotation</m:Quotation>
</m:QuotationRequest>
</SOAP-ENV: Body>
</SOAP-ENV: Envelope>
HTTP works over TCP/IP. The HTTP client links to an HTTP server using TCP. SOAP HTTP is a method that conforms with the SOAP encoding rules.
HTTP + XML = SOAP
A SOAP request could be an – HTTP GET request or HTTP POST
The HTTP POST request mentions atleast two HTTP headers: Content-Type and Content-Length.
IP address of the server where the web services are running is the end point in web services.
It is an ordinary XML document that contains the elements as a SOAP message.
Envelope: It defines the start and end of the message.
Header: It is an optional element. Contains information about the message being sent.
Body: It contains the XML data comprising the message being sent.
Fault: It provides the information about errors occurred while processing the message.
SOAP message must use encoded XML:
Message format is written by using the XML language. The message format is standard, and it is widely used. The message format is like
POST/In Stock HTTP/1.1
Host: local host (www.xyz.org)
Content Type: application/soap+xml; char set=utf-8
Content length: 300
SOAPAction: http://www.guru99.org/2003/05/soap-envelop>
<? xml version= “1.0”?>
<soap: Envelop xmlns:soap= http://www.guru99.org/2003/05/soap-envelop>
<soap: Header>
</soap: Header>
<soap: Body>
<m:CareerName>Guru99</m:CareerName>
</soap: Body>
</soap: Envelope>