linnea.amberbio.com

This page is served for the hostname linnea.amberbio.com from its own document root, /home/linnea/www/linnea.

Served by the Linnea server — an HTTP/TLS server written in x86-64 assembly — with SNI selecting this vhost's certificate.

Try the API

Both endpoints live under /api, which this server routes to a small HTTP/1.1 backend on loopback. Your browser reaches them over whichever protocol it negotiated — including HTTP/3, where the request is carried on its own QUIC stream and an upload is consumed as it arrives rather than held whole.

Random number

GET /api/random

Upload and checksum

POST /api/upload — the file is the request body. The server hashes it as it lands and deletes it immediately; only the name, size and digest come back.

A shared counter, over WebSocket

This one is not a request and a response. The /ws location is relayed to a backend as an opaque tunnel — this server forwards the upgrade, then stops reading and never sees a frame. Everything RFC 6455 happens at the far end, in assembly: the handshake token, the framing, the unmasking.

What the tunnel buys is the direction of travel. Pressing the button sends three bytes up the socket; the new value comes back down every open socket, including ones that asked for nothing. Open this page in a second tab and watch both numbers move together.

The socket is a separate HTTP/1.1 connection, so it runs alongside the HTTP/2 or HTTP/3 carrying the rest of the page rather than over it.

The counter

wss://linnea.amberbio.com/ws

connecting…

Video, and byte ranges

Scrubbing the timeline makes the browser ask for byte ranges instead of the whole file: each seek is a Range request answered with 206 Partial Content. The file is about 30 MB, and nothing like all of it is sent unless you watch to the end.

Below are ten ~0.6 MB images (~6 MB in all), requested at once when the page loads. Over HTTP/3 they stream concurrently — each as a sequence of STREAM-frame chunks in its own QUIC packet under the 1200-byte datagram floor — interleaved over one shared, growing congestion window and acknowledged and flow-controlled as they go.