Would you like to read / learn a bit about web standards?

Recently I wrote a lengthy article in Dutch for the Dutch engineering community of front-end developers about the history of the web and how using web standards can be very smart.

Here is the introduction:

As this is quite a lengthy article, let’s begin with a quick summary:

  • Using web-standards can help you make decisions;
  • Smarter people than myself have thought of various ways to use the world wide web, including edge cases and other considerations;
  • There exists a proposal for anything you can think of;
  • The web wasn’t built for the browser;
  • You use web-standards.

Are you a front-end developer who wants to know more about the internet or the world wide web? Are you a full-stack developer (in whatever capacity, or meaning of this term) and do you want to know more about web standards? Are you an architect or back-end developer and require aid designing a (web-based) API (application programming interface)?

If you said yes to at least one of those questions, or if this subject has sparked your interest, keep on reading!

Would people here be interested in reading that? If so, I’ll translate it. If not, that’s fine too, but then I won’t spend the time translating it! :smiley:

1 Like

I would say “yes, please!” – but I am only one human, and it is fine to tell me to learn some Dutch. :wink: But the intro sounds interesting, and I certainly could learn more on web standards myself, being inclined toward the back-end and avoidant of the front-end.

1 Like

If only to have a reference to point people to, as I appreciate your writing! But Dutch works too!

1 Like

Sweet. I’ll translate it!

Whilst your waiting, here is the TOC and the first bits translated:


  1. What is the world wide web?
    1. HTTP
    2. Hypertext, hyperlinks, hypermedia
    3. HTML
    4. …what about other media?
    5. Mediatype
    6. Registering a media type?
  2. Request for Comments (RFC)
    1. RFC for everything
    2. RFC for anything
      1. RFC 1121
      2. RFC 1925
      3. RFC 2119
  3. What gives? How does this help me?
    1. HTTP: the why?
    2. Inventing the wheel
    3. How do I prevent re-inventing the wheel?
  4. Web standards for web developers
  5. Join the development of our www
  6. Final words

What is the World Wide Web?

To be able to talk about web standards, it’s good to first define what the web is and consists of, including some elaborations.

HTTP

HTTP is short for Hypertext Transfer Protocol.

A protocol is generally a collection of rules to achieve some goal. In this case we’re dealing with a communication and transfer protocol, and it describes the syntax, semantics, error handling and correction, as well as synchronization to accomplish the following:

“…where hypertext documents include hyperlinks to other resources that the user can easily access.”

Wikipedia

Hypertext, hyperlinks, hypermedia

“Hyper-” from the Greek prefix “ὑπερ-”, which means over or beyond, as in exceeding.

  • Hypertext is digitally displayable text, with references (yes, the hyperlinks) to other (hyper)text, which can be accessed directly by a user.
  • Hyperlink is a link (a reference) that grants a user access to the data at the other end of that link (referred data).
  • Hypermedia is an extension of the hypertext term and describes non-lineair (digital) media both including plain text and hyperlinks, as well as images, audio, and video.

An example of hypermedia is the World Wide Web!

HTML

HTML is short for HyperText Markup Language.

It follows that hypertext doesn’t equal HTML. Instead, this language is a way to mark up hypertext in such a way that the data (the text, and when we talk about hypermedia also the other types of content) can be displayed or referenced (using hyperlinks).

The HTML standard is meant to describe how to annotate documents so a browser may display it. It’s a way to make hypertext interactive. Thus, the web browser is a tool to follow hyperlinks, which we know as browsing the web.

HTTP aids transferring HTML documents, as it’s the Hypertext Transfer Protocol for documents written in Hypertext Markup Language.

…what about other media?

When you’re browsing the web, you’ll often run into content that’s not just text or text-based — plain or styled — but rather things such as images, audio, video, and other non-textual content.

The smart humans that brought HTTP to life (and continued developing it) also came up with a smart way to allow HTTP to send more than just hypertext and hypertext-based documents. The way they accomplished this is by using metadata which is sent along with the content requested.

In order to support other (types of) media, HTTP commonly uses a Media type (MIME TYPE).

Mediatype

The data format of a representation is known as a media type […]

On the web we technically talk about representations of resources. The format of such a representation (meaning the syntax, the rules, the usage, the constraints, etc.) are commonly known as a media type.

Some well known examples of media types are:

  • text/html
  • image/png
  • application/json

There are rules about the syntax and usage of these media types. Together we came up with and agreed on how specific binary data can be interpreted (read) or arranged (written). A PNG image is a PNG image if we interpret the binary data as a PNG. How that would and should work for PNGs is written down and accepted as a standard, after which it was (publicly) registered.

Registering a media type?

Here are another three examples of media types:

  • application/vnd.ms-powerpoint
  • application/graphql
  • application/vnd.xpbytes.errors.v1+json

The first one describes Microsoft Powerpoint files. The second one used to be the (defacto) standard way to desrcibe GraphQL queries and responses. The last one is one out of many vendor (vnd) specific media types that we use at work to describe error messages.

There exists a document (and standard) that defines and explains how to register a media type: RFC 6838: Media Type Specifications and Registration Procedures

“This document defines procedures for the specification and registration of media types for use in HTTP, MIME, and other Internet protocols.”

The goal of registering a media type is to make it accessible for other to use on the interwebs, and so that we may agree on how data can be interpreted or arranged. Whilst it’s not strictly mandatory to register media types starting with vnd., it will aid in the process of writing, sanitizing, iterating, and improving a media type specification.

For media types outside of the vnd. (vendor) and prs. (personal) trees — in other words: media types that don’t start with that prefix — registration is mandatory. It’s not a media type until it’s officially been registered.


5 Likes