edits, standardize on the web, the Web 1.0

This commit is contained in:
Bill Talcott 2023-01-18 12:47:41 -05:00
parent 396e1c8ca8
commit 0ff5cf136d

View File

@ -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!