Konrad Kowalski (rootsher)Principal Platform & Reliability Architect000010100111011011110011110001000100110101001000

Backend

posts (20)

  1. The Layers of HTTP in the Browser: From fetch() to QUIC4/9

    The Browser Does Not Give JavaScript Full Control over HTTP

    fetch() is not a raw socket. Cookies, the cache, preflight and some headers belong to the browser, so one operation in code does not equal one request on the…

  2. The Layers of HTTP in the Browser: From fetch() to QUIC3/9

    Headers and Body: Metadata vs Representation

    A body is bytes, not JSON. Headers say how to read it and steer caching, cookies and CORS, even though the application does not fully control them.

  3. The Layers of HTTP in the Browser: From fetch() to QUIC2/9

    Methods and Status Codes: Semantics, Not Decoration

    The method and the status tell the browser and the infrastructure what may be done with a request. That is why retrying a POST is a different decision than…

  4. The Layers of HTTP in the Browser: From fetch() to QUIC1/9

    Request and Response: What Does the Browser Actually Send?

    A request is not a URL, and an HTTP response is not always JSON. Headers and body have separate lifecycles, and an HTTP error is not a network failure.

  5. series · 9 parts

    The Layers of HTTP in the Browser: From fetch() to QUIC

    Two lines of fetch() cover several layers: the browser API, HTTP semantics, the wire protocol and the transport. This series separates them so the Network…

  6. Realtime in the Browser: From Polling to WebTransport7/7

    Polling, Streaming, SSE, WebSocket, or WebTransport?

    The choice follows from the traffic model: freshness, direction, frequency, ordering and reliability. The simplest correct mechanism usually wins.

  7. Realtime in the Browser: From Polling to WebTransport6/7

    WebTransport: Streams and Datagrams for Realtime over HTTP/3

    HTTP/3 and QUIC give a single session many independent streams plus datagrams. Not all data has to arrive reliably and in order.

  8. Realtime in the Browser: From Polling to WebTransport5/7

    WebSockets: A Persistent Bidirectional Communication Channel

    After the handshake there are no requests and responses left, only frames. A persistent connection is state, and it reaches the load balancer, the deploy and…

  9. Realtime in the Browser: From Polling to WebTransport4/7

    Server-Sent Events: An Event Protocol over HTTP Streaming

    A standard event format and reconnection on top of an HTTP stream. Last-Event-ID gives you resume, but it does not solve event durability in the system.

  10. Realtime in the Browser: From Polling to WebTransport3/7

    HTTP Streaming: One Response, Many Chunks of Data

    A response can be produced over time. A transport chunk is not a message, so framing and backpressure become the application's business.