- Hands-On RESTful Web Services with Go
- Naren Yellavula
- 246字
- 2021-06-24 17:04:21
Types of web services
There are many types of web services that have evolved over time. Some of the more prominent ones are as follows:
- Simple Object Access Protocol (SOAP)
- Universal Description, Discovery, and Integration (UDDI)
- Web Services Description Language (WSDL)
- Representational State Transfer (REST)
Out of these, SOAP became popular in the early 2000s, when XML riding on a high wave. The XML data format is used by various distributed systems to communicate with each other.
A SOAP request usually consists of these three basic components:
- The envelope
- The header
- The body
Just to perform an HTTP request and response cycle, we have to attach a lot of additional data in SOAP. A sample SOAP request to a fictional book server, www.example.org, looks like this:
POST /Books HTTP/1.1
Host: www.example.org
Content-Type: application/soap+xml; charset=utf-8
Content-Length: 299
SOAPAction: "https://www.w3.org/2003/05/soap-envelope"
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:m="https://www.example.org">
<soap:Header>
</soap:Header>
<soap:Body>
<m:GetBook>
<m:BookName>Alice in the wonderland</m:BookName>
</m:GetBook>
</soap:Body>
</soap:Envelope>
This is a standard example of a SOAP request for getting book data. If we observe carefully, it is in XML format, with special tags specifying the envelope and body. Since XML works by defining a lot of namespaces, the response gets bulky.
The main drawback of SOAP is that it is too complex for implementing web services and is a heavyweight framework. A SOAP HTTP request can get very bulky and can cause bandwidth wastage. The experts looked for a simple alternative, and in came REST. In the next section, we will briefly discuss REST.
- Java語言程序設計
- Unreal Engine Physics Essentials
- Google Flutter Mobile Development Quick Start Guide
- 新一代通用視頻編碼H.266/VVC:原理、標準與實現
- Mastering Entity Framework
- Java開發入行真功夫
- 深入淺出Android Jetpack
- PySide 6/PyQt 6快速開發與實戰
- Haskell Data Analysis Cookbook
- Android項目實戰:手機安全衛士開發案例解析
- Vue.js應用測試
- 區塊鏈國產化實踐指南:基于Fabric 2.0
- C++ System Programming Cookbook
- Advanced Python Programming
- Mastering OAuth 2.0