Chapter 6. Scaling Out
THE WEB IS THE WORLD’S LARGEST ONLINE INFORMATION SYSTEM, scaling to billions of devices and users. Hypermedia
documents connect a near limitless number of resources, most of which are
designed to be read, not modified. At a grand scale, structural hypermedia
rules, helped by the safe, idempotent properties of the ubiquitous
GET method, and to a lesser extent some
of the other cacheable verbs.
From a programmatic web perspective, the infrastructure that has evolved on the Web—particularly around information retrieval—solves many integration challenges. In this chapter, we look at how we can use that infrastructure and some associated patterns to build scalable, fault-tolerant enterprise applications.
GET Back to Basics
According to the HTTP specification, GET
is used to retrieve the representation of a resource. Example 6-1 shows a consumer
retrieving a representation of an order resource from a Restbucks
service by sending an HTTP GET
request to the server where the resource is located.
GET /order/1234 HTTP/1.1 Connection: keep-alive Host: restbucks.com
The value of the Host
header plus the relative path that follows GET together give the complete URI of the
resource being requested—in this case, http://restbucks.com/order/1234. In HTTP 1.1, servers
must also support absolute URIs, in which case the Host header is not necessary, as shown in
Example 6-2.
GET http://restbucks.com/order/1234 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access