From 0ff5cf136db072a40beb51d1ea543bdd31e7c2c0 Mon Sep 17 00:00:00 2001 From: Bill Talcott Date: Wed, 18 Jan 2023 12:47:41 -0500 Subject: [PATCH] edits, standardize on the web, the Web 1.0 --- book/CH02_ComponentsOfAHypermediaSystem.adoc | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/book/CH02_ComponentsOfAHypermediaSystem.adoc b/book/CH02_ComponentsOfAHypermediaSystem.adoc index 7851d8d..3726631 100644 --- a/book/CH02_ComponentsOfAHypermediaSystem.adoc +++ b/book/CH02_ComponentsOfAHypermediaSystem.adoc @@ -16,9 +16,9 @@ In this chapter we will look at these components and their implementation in the Once we have reviewed the major components of the web as a hypermedia system, we will look at Chapter 5 of Roy Fielding's dissertation, "`Architectural Styles and the Design of Network-based Software Architectures.`" This is where the terms REpresenation State Transfer (REST), RESTful and Hypermedia As The Engine Of Application State (HATEOAS) come from, -and we will analyze these terms in the context of The Web. +and we will analyze these terms in the context of the web. -This should give you a stronger understanding of the theoretical basis of The Web as a a hypermedia system, how it is +This should give you a stronger understanding of the theoretical basis of the web as a a hypermedia system, how it is supposed to fit together, and why Hypermedia-Driven Applications are RESTful, whereas JSON APIs, despite how the term REST is currently used in the industry, are not. @@ -89,7 +89,7 @@ The hypermedia control (link) above tells a browser: "`When a user clicks on thi https://hypermedia.systems/book/contents/ using the Hypertext Transfer Protocol`", or HTTP. HTTP is the _protocol_ used to transfer HTML (hypermedia) between browsers (hypermedia clients) and servers (hypermedia -servers) and, as such, is the key network technology that binds the distributed hypermedia system of The Web together. +servers) and, as such, is the key network technology that binds the distributed hypermedia system of the web together. HTTP version 1.1 is a relatively simple network protocol, so lets take a look at what the `GET` request triggered by the anchor tag would look like. This is the request that would be sent to the server found at `hypermedia.systems`, on port `80` @@ -298,7 +298,7 @@ Nonetheless, a well crafted hypermedia system will take advantage of both HTTP m hypermedia API. You do not want to build a hypermedia system that uses a `POST` method for all requests and responds with `200 OK` for every response. Some JSON Data APIs built on top of HTTP do exactly this! -When building a Hypermedia-Driven Application, you want, instead, to go "`with the grain`" of The Web and use HTTP methods +When building a Hypermedia-Driven Application, you want, instead, to go "`with the grain`" of the web and use HTTP methods and response codes as they were designed to be used. ==== Caching HTTP Responses @@ -365,9 +365,9 @@ In the htmx community we call this (with tongue in cheek) the HOWL stack: Hyperm is multi-language and multi-framework, there are rubyists as well as pythonistas, lispers as well as haskellers. There are even JavaScript enthusiasts! All these languages and frameworks are able to adopt hypermedia, and are able to still share techniques and offer support to one another because they share a common underlying architecture: they are all using -The Web as a hypermedia system. +the web as a hypermedia system. -Hypermedia, in this sense, provides a "`universal language`" for The Web that we can all use. +Hypermedia, in this sense, provides a "`universal language`" for the web that we can all use. **** === Hypermedia Clients @@ -446,7 +446,7 @@ Here are the constraints of REST, which are outlined in Section 5.1 of his disse * It is a layered system (section 5.1.6) * Optionally, can allow for Code-On-Demand (section 5.1.7), that is, scripting. -Let's go through each of these constrains in turn and discuss them in detail, looking at how (and to what extent) The Web +Let's go through each of these constrains in turn and discuss them in detail, looking at how (and to what extent) the web satisfies each of them. === The Client-Server Constraint @@ -496,7 +496,7 @@ servers between a given client and final server to cache the results of a given As we discussed above, HTTP has a sophisticated caching mechanism via Response headers that is often overlooked or underutilized when building hypermedia applications. Given the existence of this functionality, however, it is -easy to see how this constraint is satisfied by The Web. +easy to see how this constraint is satisfied by the web. === The Uniform Interface Constraint @@ -822,4 +822,4 @@ systems so flexible. If you didn't really appreciate what REST and HATEOAS meant before now, don't feel bad: it took some of us over a decade of working in web development, and building a hypermedia-oriented library to boot, to realize just how -special HTML, hypermedia and The Web is! +special HTML, hypermedia and the web is!