Canonical arrows from the English tracking variant and primary converge on /article. The separate Chinese row points to /zh/article. Original requests still return 200.

Canonical URLs name a preferred representation

Several URLs can deliver the same document: a tracking parameter, alternate host, or trailing-slash variant may leave the meaningful content unchanged. A canonical link identifies the preferred representation among suitable duplicates. It helps consumers interpret that relationship, but it does not redirect an HTTP request or force a search engine to select the declared URL. The declaration is useful only when its target and surrounding signals describe the actual content relationship. ...

June 26, 2027 · 5 min · XB Field Notes
A client holds Secure, HttpOnly, and SameSite flags beside a cookie. An arrow sends only Cookie name=value to the server, which still must authorize the action.

Cookie flags constrain a supporting client

Secure, HttpOnly, and SameSite describe different restrictions that a supporting browser applies to cookies. The server receives the resulting name/value pairs, not a certificate that those restrictions were enforced. Keep browser behavior and server authorization separate: a cookie can be correctly delivered while the requested action is still forbidden. ...

June 17, 2027 · 4 min · XB Field Notes
In the source HTTP/1.1 exercise, /one, /two and /close share one socket; /four uses a new socket. All four responses are 200 with Content-Length: 2 and body ok, which is fully read before the next request. Connection: close on /close forces the later reconnect. This is an observed local sequential fixture result, not HTTP/2 or end-to-end proxy evidence.

HTTP keep-alive reuses one TCP connection

HTTP persistence lets several request and response exchanges use one connection. That can avoid repeated TCP setup and, for HTTPS, repeated TLS negotiation. The benefit depends on latency, request size, and whether another usable connection already exists. Persistence does not make application work disappear, nor does it promise that a socket will remain open indefinitely. ...

May 28, 2027 · 4 min · XB Field Notes
A received three-second wait creates an earliest retry boundary; nonnegative jitter places planned attempts after it. A deadline can stop the policy.

Retry-After tells when to try again

Retry-After tells a client how long it ought to wait before a follow-up request. It is a scheduling signal, not proof that the next attempt will succeed or that replaying the original operation is safe. A client still needs a deadline, an attempt policy, and a decision about which operations it can retry. ...

May 4, 2027 · 7 min · XB Field Notes
The historical Go HTTP/1.1 exercise reuses one connection for two /ping requests and a 350 ms /slow handler even with IdleTimeout 200 ms. After the response, it waits for StateClosed before a GET uses a new identity. A separate incomplete-header probe uses ReadHeaderTimeout 500 ms and ends with EOF without invoking the handler. Client 2 s bounds are separate. No Nginx instance was tested, and this review did not rerun the source.

Idle timeouts recycle edge connections

An idle timeout closes a connection after a defined period without qualifying activity. It is a resource policy, not proof that the client disappeared. Quiet connections can belong to healthy clients; the useful question is which activity resets which timer, and what the protocol allows after closure. ...

April 26, 2027 · 6 min · XB Field Notes
Encoded input is limited before decompression and decoded output afterward. Complete valid input alone reaches the application commit point.

Request body limits set a boundary

A request-body limit bounds accepted input, not merely the number written in Content-Length. Enforce it while consuming the body, before committing application effects. Compressed input needs separate limits for encoded and decoded bytes. A 413 response is useful only if the expensive allocation or irreversible write has not already happened. ...

April 18, 2027 · 7 min · XB Field Notes
A TCP 443 lane contains two outcomes at the same plaintext listener: HTTP receives 200 and HTTPS fails TLS. A separate UDP 443 lane receives a datagram reply. The equal numbers do not merge the transport namespaces.

Default ports are conventions, not protocol detection or security

A default port lets a client omit a number when a protocol or configuration already supplies it. HTTP commonly uses TCP 80, HTTPS TCP 443, and SSH TCP 22. These assignments reduce configuration, but they do not inspect a listener’s bytes or establish its identity. An endpoint includes an address and transport as well as a port, and its application protocol still has to match the caller. ...

April 14, 2027 · 5 min · XB Field Notes
Under strict-origin-when-cross-origin in equal-security contexts, a same-origin destination receives origin plus path and query, while a cross-origin destination receives only origin. The fragment is omitted from both.

Referrer-Policy chooses how much source URL to send

The HTTP Referer request header can tell a destination which page initiated a request. Its historical spelling differs from Referrer-Policy, the policy that controls how much source information the browser supplies. Depending on that policy and the destination, the value may include the source path and query, contain only the source origin, or be omitted. Sending the full URL to every external destination is not the modern default. ...

March 24, 2027 · 5 min · XB Field Notes