Top 16 Soap Web Services Interview Questions You Must Prepare 19.Mar.2024

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: 

  • It is a platform independent and language independent.
  • SOAP de-couples the encoding and communications protocol from the runtime environment.
  • Web service can obtain or receive a SOAP payload from a remote service, and the platform information of the source are entirely unrelated.
  • Anything can generate an XML, from Perl scripts to C++ code to J2EE app servers.
  • To send and receive messages it uses XML.
  • It uses standard internet HTTP protocol.
  • SOAP runs over HTTP; it eradicates firewall problems.  When using protocol  HTTP as the protocol binding, an RPC call maps automatically to an HTTP request and an RPC response maps to an HTTP response.
  • Compared to RMI, CORBA and DCOM SOAP is very simple.
  • A protocol for moving information in a distributed and decentralized environment.
  • SOAP is the transport protocol independent and can be availed in co-ordination with a variety of protocols.
  • It is the vendor neutral.

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 message has a root Envelope element.
  • Envelope is a mandatory part of SOAP message.
  • If an Envelope contains a header element, it should not contain more than one. Also, it should appear as the first child of the Envelope.
  • When SOAP version changes envelop version also changes.
  • SOAP envelope is specified by prefix ENV and Envelope element.
  • The optional SOAP encoding is also specified using a namespace and the optional encodingstyle 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:

  • A SOAP envelope namespace must be used.
  • A SOAP encoding namespace must be used.
  • A SOAP message must not consist of a DTD reference.
  • A SOAP message must not have XML processing instruction.

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>