Fact 1: HTTP stands for Hypertext Transfer Protocol. It does not stand for Hypertext Transport Protocol. Fact 2: HTTP is not a transport protocol in the sense of a computer or network communication protocol, despite it being used as such by SOAP. It is an application-level protocol for distributed, collaborative, hypermedia information systems. Fact 3: HTTP is a protocol, i.e. a specification. It can be implemented in software. Fact 4: REST is a set of software architectural principles and constraints for characterizing a certain class of systems; those that consist of distributed and independently developed and continuously evolving applications that need to collaborate.
Read more

Database Psychosis
Most applications have the need to have data persistent between application sessions. Persistence means that data is saved and can be read at a later time, even if the power to the device running the application is turned off in between application restarts. The only way to achieve this is to store data to some sort of file system on a non-volatile storage, usually in the form of a hard disk.
Read more

Some reflections on HTTP
Since I wrote this back in 2010, the heated and confused REST/HTTP vs SOAP debate is over. Today, a REST-ful HTTP/JSON API is firmly established as the best-practice technology for web API:s. Of course, there are many legacy systems that provide API:s implemented with other technologies based on other design principles or simply because it seemed like a good idea at the time. I still think these simple reflections on HTTP are relevant for understanding why REST-ful HTTP/JSON API:s have become so dominant today.
Read more