Representational State Transfer (REST) has gained widespread acceptance across the Web as a simpler alternative to other Web services ( SOAP and WSDL ). REST is an architecture style or design pattern used as a set of guidelines for creating web services which allow anything connected to a network to communicate with one another via a shared common communications protocol known as Hypertext Transfer Protocol (HTTP).
The same HTTP verbs (GET, POST, PUT, DELETE etc.) used by web browsers to retrieve and display web pages, audio/video files, images etc. from remote servers and post data back to them when performing actions like filling out and submitting forms are used by all of the aforementioned devices/services to communicate with one another. By leveraging and repurposing a lightweight and universal protocol like HTTP, software engineers and system architects are given a set of guidelines to use when designing RESTful web services for both new and existing products and services that contribute to what has become collectively known as the Internet of Things (IoT).
Technically speaking, it is an abstraction of the architecture of the World Wide Web; more precisely, REST is an architectural style consisting of a coordinated set of architectural constraints applied to components, connectors, and data elements.
RESTful web services are assumed to return data in XML and/or JSON format, the latter of which has been gaining more and more support and seems to be the data format of choice for many of the newer REST implementations.