Back to the Webship blog

Webship engineering

Webship: The Most RFC-Compatible Web Server in the World

Webship turns RFC requirements into explicit behavior across HTTP/1.1, HTTP/2, HTTP/3, QUIC, TLS, caching, reverse proxying, WebTransport, ACME, and the new QUERY method. Explore the complete 52-RFC standards map.

The web is held together by exact agreements. A Content-Length field must mean the same thing at every hop. A cache must not reuse a response that requires validation. A malformed HTTP/3 field section must fail at the correct scope. A safe method must stay safe after it passes through a reverse proxy.

Webship 1.3.1 is built around one rule: speed counts only when the bytes keep their meaning.

That is why we describe Webship as the most RFC-compatible general-purpose web server in the world. This is an engineering claim with a visible boundary, not a claim that every optional feature in every RFC exists. The map below names the 52 RFCs that affect Webship’s active server behavior or its owned protocol foundations. Current standards come first. Superseded documents are identified as compatibility lineage. Draft specifications are not relabeled as RFCs.

Compatibility is behavior, not a badge

Webship applies standards at the places where production servers most often become ambiguous:

  • HTTP/1.1 framing rejects conflicting lengths, invalid transfer codings, oversized request targets, malformed chunks, and request-smuggling shapes.
  • HTTP/2 and HTTP/3 reject forbidden connection fields, validate pseudo-fields, bound compressed field sections, and keep stream errors separate from connection errors.
  • Static files preserve HEAD semantics, validators, precondition order, byte ranges, redirects, and content types.
  • The reverse proxy preserves framing, cancellation, trailers, upgrades, safe retries, and forwarding identity while stripping hop-by-hop fields.
  • The cache calculates age, freshness, revalidation, Vary, invalidation, and stale-use rules rather than treating caching as a key-value shortcut.
  • TLS, QUIC, ACME, early data, and WebTransport use bounded state and explicit failure policy.

The same rules apply on the fast path. Webship does not define one “correct” path and a different benchmark path.

HTTP semantics, framing, caching, and proxying

QUIC transport and congestion control

TLS, certificates, and automatic certificate management

WebTransport: precise about what is standardized

WebTransport over HTTP/3 is not counted as a fifty-third RFC. As of Webship 1.3.1, its wire mapping remains draft-ietf-webtrans-http3-16. Webship implements that draft on top of the standardized HTTP/3, extended CONNECT, QUIC DATAGRAM, HTTP Datagram, and Capsule layers named above. It also implements the negotiated RESET_STREAM_AT extension required to preserve a reliable session-identifying prefix when a WebTransport stream is reset.

That distinction matters. Standards compatibility is not improved by calling a draft an RFC. It is improved by tracking the draft explicitly, isolating it from ordinary HTTP paths, negotiating every extension, bounding every session resource, and testing cancellation and failure behavior.

Why this breadth matters in production

A standards bug is rarely isolated. Incorrect HSTS handling can cross a cache boundary. A malformed QPACK instruction can terminate unrelated requests. An unsafe early-data assumption can replay an operation. A QUERY cache key that omits the request body can return the result of a different query. A proxy that strips trailers or mishandles cancellation can silently change an application protocol.

Webship’s architecture treats these as connected concerns. Parser limits, security inspection, caching, reverse proxying, transport state, and instrumentation share explicit contracts. The result is one server that can move between HTTP/1.1, HTTP/2, HTTP/3, static delivery, reverse proxying, streaming, and WebTransport without giving each mode a different definition of correctness.

Verify the claim

Do not take a superlative on trust. Read the [Webship 1.3.1 documentation](/docs/1.3.1), inspect the configuration and protocol boundaries, and reproduce the published behavior. Then [download Webship](/downloads) and test the edge cases that matter to your system.