Real-time HTTP and server push
Providing real-time functionalities to a web application was a very complex task for the first two decades of the internet, mostly due to the fact that the HTTP protocol was never meant for it. As we learned in Chapter 13, Beyond REST – Web API and GraphQL, when we briefly reviewed the REST principles and constraints distilled from the HTTP/1.0 and 1.1 specifications, there were no references to real-time communications, streaming protocols, server-initiated calls, or any other technique that might lead to something different from the pull-based request/response cycle initiated by a client request and handled by the server with a corresponding (and terminating) response.
For that very reason, for most of the 1990s, the most effective ways to implement real-time behaviors in a web application were:
- Using Java, Flash/ActionScript, or other “embeddable” content that could (A) support a suitable technology to achieve such...