Providing web services involves solving several interrelated problems. There are a number of applicable protocols that must be followed, each with its own unique design considerations. The core of web services are the various standards that define the HTTP.
HTTP involves two parties; a client and a server:
- The client makes requests of the server
- The server sends responses back to the client
The relationship is highly asymmetric. We expect a server to process concurrent requests from multiple clients. Because the client requests arrive asynchronously, the server cannot easily distinguish those requests that originate from a single human user. The idea of a human user's session is implemented by designing a server that provides a session token (or cookie) to track the human's sense of current state.
The HTTP protocol is flexible and extensible. One popular...