Konrad Kowalski (rootsher)Principal Platform & Reliability Architect000010100111011011110011110001000100110101001000

Backend

posts (23)

  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. Testing Through Layers: From Code to Infrastructure4/9

    Contract Tests and API Tests: The Public System Agreement

    A contract test protects the agreement between systems, while an API test checks the behavior of a public interface. Both matter where a change stops being…

  7. 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.

  8. 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.

  9. Testing Through Layers: From Code to Infrastructure3/9

    Integration Tests: The Real System Boundary

    An integration test checks whether code works with a real dependency or a real boundary. It tests the place a unit test cannot see by definition.

  10. 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…