mirror of
https://github.com/bigskysoftware/hypermedia-systems.git
synced 2025-10-21 00:05:59 -04:00
edits, standardize on the web, the Web 1.0
This commit is contained in:
parent
396e1c8ca8
commit
0ff5cf136d
@ -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!
|
||||
|
Loading…
x
Reference in New Issue
Block a user