The server
To simplify testing and possible future integration, we want to make our server talk a well-established application-level protocol this time. Let's use Hypertext Transfer Protocol (HTTP); in addition to relative simplicity and ease of testing, it has at least two more valuable qualities:
- Abundance of libraries to support it, both server- and client-side. This is obviously a consequence of HTTP powering the Internet, the largest and most popular network to date.
- Unlike many other protocols, for HTTP we can write a very simple proof-of-concept JavaScript client that runs inside a web browser. This isn't strictly related to the topic of the book, but may prove useful in a number of scenarios, especially when debugging.
The library of choice that we'll utilize to build the server is Flask. There is another popular Python web framework, Django, that's also highly recommended. However, Django projects generally end up being more heavyweight, so we'll stick with...