Hosting 8TML pages

8TML > Guides

8TML pages are static files, so almost any web server can host them. A few settings make the difference between a site 8-bit machines can reach and one they can’t.

Plain HTTP, no forced HTTPS

Most 8-bit computers can’t do HTTPS. Serve your 8TML pages, stylesheets and form addresses over plain http://, and don’t redirect them to https://. You can still offer HTTPS next to it for modern browsers.

Content that is only available over HTTPS can be reached through an HTTPS proxy running on the reader’s own computer, but that’s extra work for every reader.

Content type

Send 8TML pages as text/8tml. Clients decide by the Content-Type header, not by the file name, and they refuse text/html and anything that starts with image/, audio/, video/ or font/. A missing type, text/plain or application/octet-stream also work.

Apache:

AddType text/8tml .8tml
AddType text/plain .8ss

nginx:

types {
    text/8tml  8tml;
    text/plain 8ss;
}

Because clients don’t look at file names, dynamic pages work too: a guestbook.php that outputs 8TML is fine as long as it sends the right type.

index.8tml and site.8ss

  • A client given a folder address (one that ends in /) asks for index.8tml in it by itself, so your server needs no extra index setting for 8TML.
  • Put the site’s stylesheet at /site.8ss. If there is none, a normal “404 Not Found” is fine; clients remember it and don’t ask again.

The requests you’ll see

Clients send HTTP/1.0 requests with a Host: header, so name-based virtual hosting works. They follow redirects (301, 302, 303, 307), at most five in a row. Ordinary web servers handle all of this without any setting.

Files

  • Use 7-bit ASCII text with LF or CR LF line endings. Bytes above 127 appear as ? on the reader’s screen.
  • Keep pages small: a few kilobytes each. Clients cut pages that don’t fit into their memory.

On T8wn

T8wn will host plots that already follow all of this.