8.3. Communication Protocols

A communication protocol defines how to move data from place A to place B. Depending on the application, one has to balance several different factors, such as latency, addressing and data encoding, when choosing the best protocols for the task – no single protocol is suitable for all applications. The situation is similar to the transportation of physical goods. You have to choose the proper packaging, routing and mode of transportation (air, ground or sea) for your cargo.

Luckily, some common protocols are enough for almost all applications. This chapter focuses on a stack of three protocols, depicted in Figure 8.2.

Figure 8-2. Protocol stack used in this book

It is likely that these protocols will serve all your needs for communication. Most of the Internet works on TCP and the web is built on top of it using HTTP. For this reason, we use the terms 'web server' and 'HTTP server' interchangeably. The topmost protocol, JSON, is a recent addition to the stack and it is typically used by modern web applications.

The protocols are complementary to each other: TCP is responsible for establishing connections between two IP addresses and moving packets between the two endpoints. Nowadays, HTTP is used as a common way to access services (including web pages) behind URL addresses. It uses TCP to transfer data between the client and an HTTP server. JSON is ...

Get Mobile Python: Rapid Prototyping of Applications on the Mobile Platform now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.