{
  "dataset": "WebTransport glossary",
  "publisher": "WebTransport Day",
  "page": "https://webtransport.day/glossary/",
  "note": "Definitions in our own words, each with primary sources and a checked date. Terms that could not be verified are omitted.",
  "checkedOn": "2026-10-28",
  "terms": [
    {
      "slug": "0-rtt",
      "term": "0-RTT",
      "aka": [
        "zero round-trip time",
        "early data"
      ],
      "definition": "A QUIC and TLS 1.3 feature that lets a returning client send application data in its very first flight, before the handshake finishes, by reusing parameters from an earlier connection. That early data can be replayed by an attacker.",
      "details": "Because of replay risk, clients should only send 0-RTT data when the application explicitly asks for it, and it should never trigger actions with unwanted side effects.",
      "sources": [
        {
          "title": "RFC 9001: Using TLS to Secure QUIC",
          "url": "https://www.rfc-editor.org/rfc/rfc9001.html"
        },
        {
          "title": "RFC 8446: The Transport Layer Security (TLS) Protocol Version 1.3",
          "url": "https://www.rfc-editor.org/rfc/rfc8446.html"
        }
      ],
      "checkedOn": "2026-10-28",
      "status": "verified",
      "notes": "Sourced from RFC 9001 (sections 2.1, 4.6, 5.6) and RFC 8446 (section 2.3). Whether any given browser or WebTransport server uses 0-RTT for sessions was not verified and is not claimed."
    },
    {
      "slug": "alpn",
      "term": "ALPN",
      "aka": [
        "Application-Layer Protocol Negotiation"
      ],
      "definition": "A TLS extension that lets client and server agree, during the handshake, on which application protocol will run over the encrypted connection. HTTP/3 is identified by the ALPN token \"h3\".",
      "details": "The client sends its protocols in preference order and the server picks exactly one. If none match, the server aborts with the fatal no_application_protocol alert.",
      "sources": [
        {
          "title": "RFC 7301: TLS Application-Layer Protocol Negotiation Extension",
          "url": "https://www.rfc-editor.org/rfc/rfc7301.html"
        },
        {
          "title": "RFC 9114: HTTP/3",
          "url": "https://www.rfc-editor.org/rfc/rfc9114.html"
        }
      ],
      "checkedOn": "2026-10-28",
      "status": "verified",
      "related": [
        {
          "label": "Debug WebTransport handshake errors",
          "href": "/guides/debug-webtransport-handshake-errors/"
        }
      ]
    },
    {
      "slug": "backpressure",
      "term": "Backpressure",
      "definition": "A signal that flows backward through a chain of streams, telling the producer to slow down because the consumer cannot keep up. In the Streams API it is expressed through a queue's desiredSize.",
      "details": "desiredSize is the high water mark minus the size of queued chunks. MDN notes the WebSocket API has no way to apply backpressure, which is one reason stream-based APIs such as WebTransport are attractive.",
      "sources": [
        {
          "title": "Streams Standard (WHATWG)",
          "url": "https://streams.spec.whatwg.org/"
        },
        {
          "title": "Streams API concepts (MDN)",
          "url": "https://developer.mozilla.org/en-US/docs/Web/API/Streams_API/Concepts"
        },
        {
          "title": "WebSocket (MDN)",
          "url": "https://developer.mozilla.org/en-US/docs/Web/API/WebSocket"
        }
      ],
      "checkedOn": "2026-10-28",
      "status": "verified",
      "related": [
        {
          "label": "WebTransport vs WebSocket",
          "href": "/guides/webtransport-vs-websocket/"
        }
      ]
    },
    {
      "slug": "bidirectional-stream",
      "term": "Bidirectional stream",
      "aka": [
        "bidi stream"
      ],
      "definition": "An ordered, reliable byte channel in which both endpoints can send data. In the browser, WebTransport exposes one as a WebTransportBidirectionalStream with a readable side for incoming bytes and a writable side for outgoing bytes.",
      "details": "Either side can open one: call createBidirectionalStream() to open it, or read incomingBidirectionalStreams for those the server opens.",
      "sources": [
        {
          "title": "WebTransportBidirectionalStream (MDN)",
          "url": "https://developer.mozilla.org/en-US/docs/Web/API/WebTransportBidirectionalStream"
        },
        {
          "title": "draft-ietf-webtrans-overview-13: The WebTransport Protocol Framework",
          "url": "https://datatracker.ietf.org/doc/html/draft-ietf-webtrans-overview"
        },
        {
          "title": "RFC 9000: QUIC: A UDP-Based Multiplexed and Secure Transport",
          "url": "https://www.rfc-editor.org/rfc/rfc9000.html"
        }
      ],
      "checkedOn": "2026-10-28",
      "status": "verified",
      "related": [
        {
          "label": "What is WebTransport?",
          "href": "/guides/what-is-webtransport/"
        }
      ]
    },
    {
      "slug": "capsule",
      "term": "Capsule",
      "aka": [
        "HTTP Capsule Protocol"
      ],
      "definition": "A type-length-value message defined by the HTTP Capsule Protocol and carried inside the data stream of an upgraded HTTP request, such as an Extended CONNECT. Receivers silently skip capsule types they do not recognise.",
      "details": "The DATAGRAM capsule (type 0x00) carries an HTTP Datagram when QUIC DATAGRAM frames are unavailable. The WebTransport over HTTP/3 draft defines its own capsules, including WT_CLOSE_SESSION and WT_DRAIN_SESSION.",
      "sources": [
        {
          "title": "RFC 9297: HTTP Datagrams and the Capsule Protocol",
          "url": "https://www.rfc-editor.org/rfc/rfc9297.html"
        },
        {
          "title": "draft-ietf-webtrans-http3-16: WebTransport over HTTP/3",
          "url": "https://datatracker.ietf.org/doc/html/draft-ietf-webtrans-http3-16"
        }
      ],
      "checkedOn": "2026-10-28",
      "status": "verified",
      "notes": "Capsule names for WebTransport come from draft-ietf-webtrans-http3-16 and may change before it becomes an RFC."
    },
    {
      "slug": "close-info-close-codes",
      "term": "closeInfo / close codes",
      "aka": [
        "WebTransportCloseInfo",
        "closeCode"
      ],
      "definition": "The dictionary passed to WebTransport.close(), holding a numeric closeCode (default 0) and a reason string. The closed promise later reports the same pair once the session ends.",
      "details": "The spec truncates the UTF-8 encoded reason to 1024 bytes, and the HTTP/3 draft likewise caps the close message at 1024 bytes. An abrupt failure rejects the closed promise instead of resolving it.",
      "sources": [
        {
          "title": "WebTransport (W3C Working Draft)",
          "url": "https://www.w3.org/TR/webtransport/"
        },
        {
          "title": "WebTransport.close() (MDN)",
          "url": "https://developer.mozilla.org/en-US/docs/Web/API/WebTransport/close"
        },
        {
          "title": "WebTransport.closed (MDN)",
          "url": "https://developer.mozilla.org/en-US/docs/Web/API/WebTransport/closed"
        },
        {
          "title": "draft-ietf-webtrans-http3-16: WebTransport over HTTP/3",
          "url": "https://datatracker.ietf.org/doc/html/draft-ietf-webtrans-http3-16"
        }
      ],
      "checkedOn": "2026-10-28",
      "status": "verified",
      "notes": "MDN names the close() parameter info; the W3C spec names it closeInfo. Behaviour is the same.",
      "related": [
        {
          "label": "Debug WebTransport handshake errors",
          "href": "/guides/debug-webtransport-handshake-errors/"
        }
      ]
    },
    {
      "slug": "congestion-control",
      "term": "Congestion control",
      "definition": "The sender-side logic that limits how much unacknowledged data is in flight so a connection adapts to network capacity instead of overwhelming it. QUIC defaults to a NewReno-style controller but permits others, such as CUBIC.",
      "details": "QUIC datagrams are subject to the connection's congestion controller too: the sender must either delay a datagram until allowed or drop it.",
      "sources": [
        {
          "title": "RFC 9002: QUIC Loss Detection and Congestion Control",
          "url": "https://www.rfc-editor.org/rfc/rfc9002.html"
        },
        {
          "title": "RFC 9000: QUIC: A UDP-Based Multiplexed and Secure Transport",
          "url": "https://www.rfc-editor.org/rfc/rfc9000.html"
        },
        {
          "title": "RFC 9221: An Unreliable Datagram Extension to QUIC",
          "url": "https://www.rfc-editor.org/rfc/rfc9221.html"
        }
      ],
      "checkedOn": "2026-10-28",
      "status": "verified",
      "related": [
        {
          "label": "What is WebTransport?",
          "href": "/guides/what-is-webtransport/"
        }
      ]
    },
    {
      "slug": "congestioncontrol-option",
      "term": "congestionControl option",
      "aka": [
        "congestionControl"
      ],
      "definition": "A WebTransport constructor option that hints whether the browser should tune its congestion control for throughput or low latency. Accepted values are \"default\", \"throughput\" and \"low-latency\"; the browser may ignore the hint.",
      "details": "The chosen preference can be read back from the congestionControl property. The spec flags \"low-latency\" as a feature at risk because no browser implements a low-latency algorithm yet.",
      "sources": [
        {
          "title": "WebTransport() constructor (MDN)",
          "url": "https://developer.mozilla.org/en-US/docs/Web/API/WebTransport/WebTransport"
        },
        {
          "title": "WebTransport.congestionControl (MDN)",
          "url": "https://developer.mozilla.org/en-US/docs/Web/API/WebTransport/congestionControl"
        },
        {
          "title": "WebTransport (W3C Working Draft)",
          "url": "https://www.w3.org/TR/webtransport/"
        }
      ],
      "checkedOn": "2026-10-28",
      "status": "verified",
      "notes": "MDN marks the congestionControl property page 'Limited availability' (not Baseline) at the time of checking."
    },
    {
      "slug": "connection-id",
      "term": "Connection ID",
      "aka": [
        "CID"
      ],
      "definition": "An identifier carried in QUIC packets that names a connection independently of IP addresses and ports, so packets still reach the right endpoint when the network path changes, such as moving from Wi-Fi to mobile data.",
      "details": "Each endpoint chooses the connection IDs its peer will use to address it.",
      "sources": [
        {
          "title": "RFC 9000: QUIC: A UDP-Based Multiplexed and Secure Transport",
          "url": "https://www.rfc-editor.org/rfc/rfc9000.html"
        },
        {
          "title": "WebTransport API (MDN)",
          "url": "https://developer.mozilla.org/en-US/docs/Web/API/WebTransport_API"
        }
      ],
      "checkedOn": "2026-10-28",
      "status": "verified",
      "related": [
        {
          "label": "What is WebTransport?",
          "href": "/guides/what-is-webtransport/"
        }
      ]
    },
    {
      "slug": "datagram",
      "term": "Datagram",
      "aka": [
        "QUIC datagram",
        "WebTransport datagram"
      ],
      "definition": "A small, self-contained message sent without delivery or ordering guarantees. WebTransport datagrams travel in QUIC DATAGRAM frames, are never retransmitted, and are limited in size, yet remain subject to congestion control.",
      "details": "Receivers may drop them, and QUIC gives them no explicit flow control. In the API, use datagrams.readable to receive and datagrams.createWritable() to send; datagrams.maxDatagramSize gives the largest allowed payload.",
      "sources": [
        {
          "title": "RFC 9221: An Unreliable Datagram Extension to QUIC",
          "url": "https://www.rfc-editor.org/rfc/rfc9221.html"
        },
        {
          "title": "draft-ietf-webtrans-overview-13: The WebTransport Protocol Framework",
          "url": "https://datatracker.ietf.org/doc/html/draft-ietf-webtrans-overview"
        },
        {
          "title": "WebTransport.datagrams (MDN)",
          "url": "https://developer.mozilla.org/en-US/docs/Web/API/WebTransport/datagrams"
        },
        {
          "title": "WebTransportDatagramDuplexStream (MDN)",
          "url": "https://developer.mozilla.org/en-US/docs/Web/API/WebTransportDatagramDuplexStream"
        }
      ],
      "checkedOn": "2026-10-28",
      "status": "verified",
      "related": [
        {
          "label": "What is WebTransport?",
          "href": "/guides/what-is-webtransport/"
        },
        {
          "label": "WebTransport vs WebSocket",
          "href": "/guides/webtransport-vs-websocket/"
        }
      ]
    },
    {
      "slug": "draining",
      "term": "Draining",
      "aka": [
        "session draining"
      ],
      "definition": "A WebTransport session state entered when the server asks to gracefully wind the session down. The draining promise fulfills at that point; the session keeps working, but the application should finish up and move to a new session.",
      "details": "In the W3C spec, [[State]] can be connecting, connected, draining, closed or failed. At the protocol level the HTTP/3 draft signals draining with a WT_DRAIN_SESSION capsule or an HTTP/3 GOAWAY.",
      "sources": [
        {
          "title": "WebTransport (W3C Working Draft)",
          "url": "https://www.w3.org/TR/webtransport/"
        },
        {
          "title": "WebTransport.draining (MDN)",
          "url": "https://developer.mozilla.org/en-US/docs/Web/API/WebTransport/draining"
        },
        {
          "title": "draft-ietf-webtrans-http3-16: WebTransport over HTTP/3",
          "url": "https://datatracker.ietf.org/doc/html/draft-ietf-webtrans-http3-16"
        }
      ],
      "checkedOn": "2026-10-28",
      "status": "verified",
      "notes": "Verified in the W3C spec: draining is a [[State]] value, and the spec defines it as the CONNECT stream being asked to gracefully close by the server. MDN's draining page has no Baseline banner.",
      "related": [
        {
          "label": "Debug WebTransport handshake errors",
          "href": "/guides/debug-webtransport-handshake-errors/"
        }
      ]
    },
    {
      "slug": "extended-connect",
      "term": "Extended CONNECT",
      "definition": "A variant of the HTTP CONNECT method that adds a :protocol pseudo-header naming the protocol to run over the stream. WebTransport sessions are created by sending an Extended CONNECT request over HTTP/3.",
      "details": "A server must opt in with the SETTINGS_ENABLE_CONNECT_PROTOCOL setting (identifier 0x08 in HTTP/3). The mechanism was first defined for HTTP/2 and carried over to HTTP/3.",
      "sources": [
        {
          "title": "RFC 8441: Bootstrapping WebSockets with HTTP/2",
          "url": "https://www.rfc-editor.org/rfc/rfc8441.html"
        },
        {
          "title": "RFC 9220: Bootstrapping WebSockets with HTTP/3",
          "url": "https://www.rfc-editor.org/rfc/rfc9220.html"
        },
        {
          "title": "draft-ietf-webtrans-http3-16: WebTransport over HTTP/3",
          "url": "https://datatracker.ietf.org/doc/html/draft-ietf-webtrans-http3-16"
        }
      ],
      "checkedOn": "2026-10-28",
      "status": "verified",
      "notes": "The W3C spec text describes the request as CONNECT with :protocol set to \"webtransport\", while draft-ietf-webtrans-http3-16 uses the upgrade token \"webtransport-h3\". The token is therefore not named in the definition.",
      "related": [
        {
          "label": "Debug WebTransport handshake errors",
          "href": "/guides/debug-webtransport-handshake-errors/"
        }
      ]
    },
    {
      "slug": "flow-control",
      "term": "Flow control",
      "definition": "Limits set by a receiver to stop a sender from transmitting more data than the receiver can buffer. QUIC applies them per stream and for the whole connection, using MAX_STREAM_DATA and MAX_DATA frames.",
      "details": "Senders must never exceed either limit. QUIC datagrams are exempt from explicit flow control signaling.",
      "sources": [
        {
          "title": "RFC 9000: QUIC: A UDP-Based Multiplexed and Secure Transport",
          "url": "https://www.rfc-editor.org/rfc/rfc9000.html"
        },
        {
          "title": "RFC 9221: An Unreliable Datagram Extension to QUIC",
          "url": "https://www.rfc-editor.org/rfc/rfc9221.html"
        }
      ],
      "checkedOn": "2026-10-28",
      "status": "verified",
      "related": [
        {
          "label": "What is WebTransport?",
          "href": "/guides/what-is-webtransport/"
        }
      ]
    },
    {
      "slug": "goaway",
      "term": "GOAWAY",
      "aka": [
        "HTTP/3 GOAWAY frame"
      ],
      "definition": "An HTTP/3 frame that starts a graceful shutdown of a connection. After receiving it, a client cannot begin new WebTransport sessions on that connection and must open a fresh one.",
      "details": "The WebTransport over HTTP/3 draft also treats it as a signal that applications should wind down their sessions on that connection.",
      "sources": [
        {
          "title": "RFC 9114: HTTP/3",
          "url": "https://www.rfc-editor.org/rfc/rfc9114.html"
        },
        {
          "title": "draft-ietf-webtrans-http3-16: WebTransport over HTTP/3",
          "url": "https://datatracker.ietf.org/doc/html/draft-ietf-webtrans-http3-16"
        }
      ],
      "checkedOn": "2026-10-28",
      "status": "verified",
      "related": [
        {
          "label": "Debug WebTransport handshake errors",
          "href": "/guides/debug-webtransport-handshake-errors/"
        }
      ]
    },
    {
      "slug": "head-of-line-blocking",
      "term": "Head-of-line blocking",
      "aka": [
        "HOL blocking"
      ],
      "definition": "A stall in which one lost or delayed packet holds up unrelated data queued behind it. Over HTTP/2 on TCP a single loss stalls every request, whereas independent QUIC streams let other streams keep progressing.",
      "sources": [
        {
          "title": "RFC 9114: HTTP/3",
          "url": "https://www.rfc-editor.org/rfc/rfc9114.html"
        },
        {
          "title": "WebTransport API (MDN)",
          "url": "https://developer.mozilla.org/en-US/docs/Web/API/WebTransport_API"
        }
      ],
      "checkedOn": "2026-10-28",
      "status": "verified",
      "related": [
        {
          "label": "WebTransport vs WebSocket",
          "href": "/guides/webtransport-vs-websocket/"
        },
        {
          "label": "What is WebTransport?",
          "href": "/guides/what-is-webtransport/"
        }
      ]
    },
    {
      "slug": "http-datagrams",
      "term": "HTTP Datagrams",
      "definition": "A convention for sending multiplexed, possibly unreliable datagrams tied to an HTTP request. Over HTTP/3 they ride in QUIC DATAGRAM frames; where those are unavailable, the DATAGRAM capsule carries them.",
      "details": "Each HTTP/3 datagram begins with a Quarter Stream ID, and endpoints must exchange SETTINGS_H3_DATAGRAM before sending any. The RFC says the feature is meant for HTTP extensions, not applications directly.",
      "sources": [
        {
          "title": "RFC 9297: HTTP Datagrams and the Capsule Protocol",
          "url": "https://www.rfc-editor.org/rfc/rfc9297.html"
        },
        {
          "title": "draft-ietf-webtrans-http3-16: WebTransport over HTTP/3",
          "url": "https://datatracker.ietf.org/doc/html/draft-ietf-webtrans-http3-16"
        }
      ],
      "checkedOn": "2026-10-28",
      "status": "verified",
      "related": [
        {
          "label": "What is WebTransport?",
          "href": "/guides/what-is-webtransport/"
        }
      ]
    },
    {
      "slug": "http-3",
      "term": "HTTP/3",
      "aka": [
        "HTTP over QUIC"
      ],
      "definition": "The mapping of HTTP onto QUIC instead of TCP. It relies on QUIC for stream multiplexing, per-stream flow control, loss recovery and encryption, and it is the transport that WebTransport sessions are carried over.",
      "details": "Clients identify it with the ALPN token \"h3\" or discover it through the Alt-Svc mechanism.",
      "sources": [
        {
          "title": "RFC 9114: HTTP/3",
          "url": "https://www.rfc-editor.org/rfc/rfc9114.html"
        },
        {
          "title": "draft-ietf-webtrans-http3-16: WebTransport over HTTP/3",
          "url": "https://datatracker.ietf.org/doc/html/draft-ietf-webtrans-http3-16"
        }
      ],
      "checkedOn": "2026-10-28",
      "status": "verified",
      "related": [
        {
          "label": "What is WebTransport?",
          "href": "/guides/what-is-webtransport/"
        }
      ]
    },
    {
      "slug": "origin-header",
      "term": "Origin header",
      "definition": "An HTTP request header naming the web origin of the page making the request. Browsers send it when opening a WebTransport session, so servers can accept or reject connections based on which site initiated them.",
      "details": "The WebTransport over HTTP/3 draft says browser clients must send it and that a server whose origin check fails replies with 403.",
      "sources": [
        {
          "title": "WebTransport (W3C Working Draft)",
          "url": "https://www.w3.org/TR/webtransport/"
        },
        {
          "title": "draft-ietf-webtrans-http3-16: WebTransport over HTTP/3",
          "url": "https://datatracker.ietf.org/doc/html/draft-ietf-webtrans-http3-16"
        }
      ],
      "checkedOn": "2026-10-28",
      "status": "verified",
      "related": [
        {
          "label": "Debug WebTransport handshake errors",
          "href": "/guides/debug-webtransport-handshake-errors/"
        }
      ]
    },
    {
      "slug": "quic",
      "term": "QUIC",
      "definition": "A secure, multiplexed transport protocol that runs over UDP. It offers many independent flow-controlled streams, built-in TLS 1.3 encryption and connection IDs, and it underpins both HTTP/3 and WebTransport.",
      "details": "QUIC packets are carried in UDP datagrams, and RFC 9002 supplies its loss detection and congestion control.",
      "sources": [
        {
          "title": "RFC 9000: QUIC: A UDP-Based Multiplexed and Secure Transport",
          "url": "https://www.rfc-editor.org/rfc/rfc9000.html"
        },
        {
          "title": "RFC 9001: Using TLS to Secure QUIC",
          "url": "https://www.rfc-editor.org/rfc/rfc9001.html"
        },
        {
          "title": "RFC 9002: QUIC Loss Detection and Congestion Control",
          "url": "https://www.rfc-editor.org/rfc/rfc9002.html"
        }
      ],
      "checkedOn": "2026-10-28",
      "status": "verified",
      "related": [
        {
          "label": "What is WebTransport?",
          "href": "/guides/what-is-webtransport/"
        }
      ]
    },
    {
      "slug": "readablestream",
      "term": "ReadableStream",
      "definition": "A Streams API object representing a source of data that you consume chunk by chunk. WebTransport exposes incoming datagrams, incoming streams and received bytes as ReadableStreams, read with getReader() or for await.",
      "details": "Reading a locked stream throws a TypeError, and breaking out of a for await loop cancels the stream by default. Received WebTransport data arrives as Uint8Array chunks.",
      "sources": [
        {
          "title": "Streams Standard (WHATWG)",
          "url": "https://streams.spec.whatwg.org/"
        },
        {
          "title": "ReadableStream (MDN)",
          "url": "https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream"
        },
        {
          "title": "WebTransport.incomingUnidirectionalStreams (MDN)",
          "url": "https://developer.mozilla.org/en-US/docs/Web/API/WebTransport/incomingUnidirectionalStreams"
        }
      ],
      "checkedOn": "2026-10-28",
      "status": "verified",
      "related": [
        {
          "label": "What is WebTransport?",
          "href": "/guides/what-is-webtransport/"
        }
      ]
    },
    {
      "slug": "requireunreliable",
      "term": "requireUnreliable",
      "definition": "A WebTransport constructor option, false by default, that forbids falling back to a reliable-only transport such as HTTP/2. When true, the session must be established over HTTP/3, which is what makes datagrams available.",
      "details": "After ready, the reliability property reports \"reliable-only\" or \"supports-unreliable\", and the static WebTransport.supportsReliableOnly tells you whether the browser can fall back at all.",
      "sources": [
        {
          "title": "WebTransport() constructor (MDN)",
          "url": "https://developer.mozilla.org/en-US/docs/Web/API/WebTransport/WebTransport"
        },
        {
          "title": "WebTransport.supportsReliableOnly (MDN)",
          "url": "https://developer.mozilla.org/en-US/docs/Web/API/WebTransport/supportsReliableOnly_static"
        },
        {
          "title": "WebTransport.reliability (MDN)",
          "url": "https://developer.mozilla.org/en-US/docs/Web/API/WebTransport/reliability"
        },
        {
          "title": "WebTransport (W3C Working Draft)",
          "url": "https://www.w3.org/TR/webtransport/"
        }
      ],
      "checkedOn": "2026-10-28",
      "status": "verified",
      "notes": "MDN marks the reliability property 'Limited availability' (not Baseline); the constructor and supportsReliableOnly pages do not carry that banner.",
      "related": [
        {
          "label": "Debug WebTransport handshake errors",
          "href": "/guides/debug-webtransport-handshake-errors/"
        }
      ]
    },
    {
      "slug": "secure-context",
      "term": "Secure context",
      "definition": "A browser environment judged sufficiently authenticated and confidential, typically an https page or localhost, in which powerful APIs are exposed. WebTransport is marked SecureContext, so it is unavailable on plain http pages.",
      "details": "Check window.isSecureContext, or self.isSecureContext in a worker. Dedicated workers are secure only if their owner is.",
      "sources": [
        {
          "title": "Secure contexts (MDN)",
          "url": "https://developer.mozilla.org/en-US/docs/Web/Security/Defenses/Secure_Contexts"
        },
        {
          "title": "WebTransport (W3C Working Draft)",
          "url": "https://www.w3.org/TR/webtransport/"
        },
        {
          "title": "WebTransport (MDN)",
          "url": "https://developer.mozilla.org/en-US/docs/Web/API/WebTransport"
        }
      ],
      "checkedOn": "2026-10-28",
      "status": "verified",
      "related": [
        {
          "label": "Test WebTransport locally",
          "href": "/guides/test-webtransport-locally/"
        }
      ]
    },
    {
      "slug": "send-order",
      "term": "sendOrder",
      "aka": [
        "send order"
      ],
      "definition": "An integer option or property on WebTransport streams and datagram writables that sets relative send priority. Among streams that have a value, queued bytes on those with a higher value are sent first.",
      "details": "Without a value, ordering depends on the implementation. The W3C spec also offers sendGroup to prioritise a set of streams together.",
      "sources": [
        {
          "title": "WebTransport.createBidirectionalStream() (MDN)",
          "url": "https://developer.mozilla.org/en-US/docs/Web/API/WebTransport/createBidirectionalStream"
        },
        {
          "title": "WebTransport.createUnidirectionalStream() (MDN)",
          "url": "https://developer.mozilla.org/en-US/docs/Web/API/WebTransport/createUnidirectionalStream"
        },
        {
          "title": "WebTransport (W3C Working Draft)",
          "url": "https://www.w3.org/TR/webtransport/"
        }
      ],
      "checkedOn": "2026-10-28",
      "status": "verified",
      "notes": "MDN's createBidirectionalStream() page documents only sendOrder; the W3C spec additionally lists sendGroup and waitUntilAvailable. MDN's examples pass sendOrder as a string even though the text calls it an integer."
    },
    {
      "slug": "servercertificatehashes",
      "term": "serverCertificateHashes",
      "definition": "A WebTransport constructor option that lets a page trust a server certificate by its SHA-256 hash instead of relying on Web PKI validation. It is meant for short-lived, self-managed certificates and works only on dedicated connections.",
      "details": "MDN says the certificate must be X.509v3 with under two weeks of validity and an ECDSA P-256 key, not RSA. Combining it with allowPooling: true is rejected.",
      "sources": [
        {
          "title": "WebTransport() constructor (MDN)",
          "url": "https://developer.mozilla.org/en-US/docs/Web/API/WebTransport/WebTransport"
        },
        {
          "title": "WebTransport (W3C Working Draft)",
          "url": "https://www.w3.org/TR/webtransport/"
        }
      ],
      "checkedOn": "2026-10-28",
      "status": "verified",
      "related": [
        {
          "label": "Test WebTransport locally",
          "href": "/guides/test-webtransport-locally/"
        },
        {
          "label": "Debug WebTransport handshake errors",
          "href": "/guides/debug-webtransport-handshake-errors/"
        }
      ]
    },
    {
      "slug": "settings",
      "term": "SETTINGS",
      "aka": [
        "HTTP/3 SETTINGS frame"
      ],
      "definition": "An HTTP/3 frame that each endpoint sends first on its control stream, announcing connection-wide parameters as identifier and value pairs. WebTransport servers use it to announce support, including Extended CONNECT and HTTP Datagrams.",
      "details": "Draft 16 of the WebTransport over HTTP/3 spec names SETTINGS_WT_ENABLED, SETTINGS_ENABLE_CONNECT_PROTOCOL and SETTINGS_H3_DATAGRAM for this purpose.",
      "sources": [
        {
          "title": "RFC 9114: HTTP/3",
          "url": "https://www.rfc-editor.org/rfc/rfc9114.html"
        },
        {
          "title": "draft-ietf-webtrans-http3-16: WebTransport over HTTP/3",
          "url": "https://datatracker.ietf.org/doc/html/draft-ietf-webtrans-http3-16"
        }
      ],
      "checkedOn": "2026-10-28",
      "status": "verified",
      "notes": "Setting names for WebTransport are from draft-ietf-webtrans-http3-16 and may change before it becomes an RFC.",
      "related": [
        {
          "label": "Debug WebTransport handshake errors",
          "href": "/guides/debug-webtransport-handshake-errors/"
        }
      ]
    },
    {
      "slug": "stream",
      "term": "Stream",
      "aka": [
        "QUIC stream"
      ],
      "definition": "An ordered, reliable sequence of bytes of any length inside a QUIC connection. Many streams share one connection and are delivered independently, so one stalled stream does not block the rest.",
      "details": "Streams are either unidirectional or bidirectional; the two low bits of a QUIC stream ID encode which type it is.",
      "sources": [
        {
          "title": "RFC 9000: QUIC: A UDP-Based Multiplexed and Secure Transport",
          "url": "https://www.rfc-editor.org/rfc/rfc9000.html"
        },
        {
          "title": "draft-ietf-webtrans-overview-13: The WebTransport Protocol Framework",
          "url": "https://datatracker.ietf.org/doc/html/draft-ietf-webtrans-overview"
        }
      ],
      "checkedOn": "2026-10-28",
      "status": "verified",
      "related": [
        {
          "label": "What is WebTransport?",
          "href": "/guides/what-is-webtransport/"
        }
      ]
    },
    {
      "slug": "tls-1-3",
      "term": "TLS 1.3",
      "aka": [
        "TLS 1.3 handshake"
      ],
      "definition": "The current version of Transport Layer Security, providing encryption, integrity and authentication with a one-round-trip handshake. QUIC requires TLS 1.3, so WebTransport over HTTP/3 is always encrypted.",
      "details": "In QUIC the TLS handshake messages are carried in CRYPTO frames rather than TLS records, and endpoints must not negotiate anything older than TLS 1.3.",
      "sources": [
        {
          "title": "RFC 8446: The Transport Layer Security (TLS) Protocol Version 1.3",
          "url": "https://www.rfc-editor.org/rfc/rfc8446.html"
        },
        {
          "title": "RFC 9001: Using TLS to Secure QUIC",
          "url": "https://www.rfc-editor.org/rfc/rfc9001.html"
        },
        {
          "title": "WebTransport (W3C Working Draft)",
          "url": "https://www.w3.org/TR/webtransport/"
        }
      ],
      "checkedOn": "2026-10-28",
      "status": "verified",
      "related": [
        {
          "label": "What is WebTransport?",
          "href": "/guides/what-is-webtransport/"
        }
      ]
    },
    {
      "slug": "udp",
      "term": "UDP",
      "definition": "A minimal Internet transport protocol that sends independent datagrams with no guarantee of delivery, ordering or duplicate protection. QUIC packets travel inside UDP datagrams, so networks that block UDP can break HTTP/3 and WebTransport.",
      "sources": [
        {
          "title": "RFC 768: User Datagram Protocol",
          "url": "https://www.rfc-editor.org/rfc/rfc768.html"
        },
        {
          "title": "RFC 9000: QUIC: A UDP-Based Multiplexed and Secure Transport",
          "url": "https://www.rfc-editor.org/rfc/rfc9000.html"
        },
        {
          "title": "WebTransport.supportsReliableOnly (MDN)",
          "url": "https://developer.mozilla.org/en-US/docs/Web/API/WebTransport/supportsReliableOnly_static"
        }
      ],
      "checkedOn": "2026-10-28",
      "status": "verified",
      "notes": "The consequence for blocked UDP is taken from MDN's supportsReliableOnly example comment (sessions without a reliable-only fallback fail on networks that block UDP).",
      "related": [
        {
          "label": "What is WebTransport?",
          "href": "/guides/what-is-webtransport/"
        }
      ]
    },
    {
      "slug": "unidirectional-stream",
      "term": "Unidirectional stream",
      "aka": [
        "uni stream"
      ],
      "definition": "A one-way, ordered, reliable byte stream where only the endpoint that opened it can send. In the browser, ones you open are WebTransportSendStreams and ones the server opens arrive as WebTransportReceiveStreams.",
      "details": "Open one with createUnidirectionalStream(); receive server-opened ones from incomingUnidirectionalStreams.",
      "sources": [
        {
          "title": "WebTransport.createUnidirectionalStream() (MDN)",
          "url": "https://developer.mozilla.org/en-US/docs/Web/API/WebTransport/createUnidirectionalStream"
        },
        {
          "title": "WebTransport.incomingUnidirectionalStreams (MDN)",
          "url": "https://developer.mozilla.org/en-US/docs/Web/API/WebTransport/incomingUnidirectionalStreams"
        },
        {
          "title": "draft-ietf-webtrans-overview-13: The WebTransport Protocol Framework",
          "url": "https://datatracker.ietf.org/doc/html/draft-ietf-webtrans-overview"
        }
      ],
      "checkedOn": "2026-10-28",
      "status": "verified",
      "related": [
        {
          "label": "What is WebTransport?",
          "href": "/guides/what-is-webtransport/"
        }
      ]
    },
    {
      "slug": "webrtc-data-channel",
      "term": "WebRTC data channel",
      "aka": [
        "RTCDataChannel"
      ],
      "definition": "A channel on an RTCPeerConnection for sending arbitrary data, primarily between peers. It can be configured ordered or unordered and with limited retransmits, whereas WebTransport connects a client to a server over HTTP/3.",
      "details": "MDN describes it as carried over SCTP and DTLS, and notes the theoretical limit of 65,534 channels per peer connection.",
      "sources": [
        {
          "title": "RTCDataChannel (MDN)",
          "url": "https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannel"
        },
        {
          "title": "WebTransport (MDN)",
          "url": "https://developer.mozilla.org/en-US/docs/Web/API/WebTransport"
        }
      ],
      "checkedOn": "2026-10-28",
      "status": "verified",
      "related": [
        {
          "label": "What is WebTransport?",
          "href": "/guides/what-is-webtransport/"
        }
      ]
    },
    {
      "slug": "websocket",
      "term": "WebSocket",
      "definition": "A TCP-based protocol that starts with an HTTP Upgrade handshake and then exchanges framed text or binary messages over one connection. Unlike WebTransport it has no independent streams or datagrams, and its browser API has no backpressure.",
      "details": "It uses ws and wss URL schemes, and browsers send an Origin header so servers can reject unwanted origins.",
      "sources": [
        {
          "title": "RFC 6455: The WebSocket Protocol",
          "url": "https://www.rfc-editor.org/rfc/rfc6455.html"
        },
        {
          "title": "WebSocket (MDN)",
          "url": "https://developer.mozilla.org/en-US/docs/Web/API/WebSocket"
        }
      ],
      "checkedOn": "2026-10-28",
      "status": "verified",
      "related": [
        {
          "label": "WebTransport vs WebSocket",
          "href": "/guides/webtransport-vs-websocket/"
        }
      ]
    },
    {
      "slug": "webtransport",
      "term": "WebTransport",
      "aka": [
        "WebTransport API"
      ],
      "definition": "A web API and protocol framework for client-server communication over HTTP/3, giving one connection many independent reliable streams plus unreliable datagrams. It is a more flexible alternative to WebSocket for latency-sensitive apps.",
      "details": "The browser API is a W3C specification; the wire protocol is defined by IETF drafts that are still in progress.",
      "sources": [
        {
          "title": "WebTransport (MDN)",
          "url": "https://developer.mozilla.org/en-US/docs/Web/API/WebTransport"
        },
        {
          "title": "WebTransport (W3C Working Draft)",
          "url": "https://www.w3.org/TR/webtransport/"
        },
        {
          "title": "draft-ietf-webtrans-overview-13: The WebTransport Protocol Framework",
          "url": "https://datatracker.ietf.org/doc/html/draft-ietf-webtrans-overview"
        },
        {
          "title": "draft-ietf-webtrans-http3-16: WebTransport over HTTP/3",
          "url": "https://datatracker.ietf.org/doc/html/draft-ietf-webtrans-http3-16"
        }
      ],
      "checkedOn": "2026-10-28",
      "status": "verified",
      "notes": "At the time of checking MDN's WebTransport page shows a 'Baseline 2026, Newly available' banner with partial-support asterisk, while some member pages are marked 'Limited availability'.",
      "related": [
        {
          "label": "What is WebTransport?",
          "href": "/guides/what-is-webtransport/"
        },
        {
          "label": "WebTransport vs WebSocket",
          "href": "/guides/webtransport-vs-websocket/"
        },
        {
          "label": "WebTransport client libraries",
          "href": "/guides/webtransport-client-libraries/"
        },
        {
          "label": "WebTransport tester",
          "href": "/tools/webtransport-tester/"
        }
      ]
    },
    {
      "slug": "session",
      "term": "WebTransport session",
      "aka": [
        "session"
      ],
      "definition": "A single communication context between a WebTransport client and server. It groups the streams and datagrams exchanged between them and is created by an HTTP/3 request, and it ends when closed.",
      "details": "A session may own a dedicated connection or share one with other sessions when pooling is allowed; sessions on a shared connection are logically independent.",
      "sources": [
        {
          "title": "draft-ietf-webtrans-overview-13: The WebTransport Protocol Framework",
          "url": "https://datatracker.ietf.org/doc/html/draft-ietf-webtrans-overview"
        },
        {
          "title": "WebTransport (W3C Working Draft)",
          "url": "https://www.w3.org/TR/webtransport/"
        },
        {
          "title": "WebTransport() constructor (MDN)",
          "url": "https://developer.mozilla.org/en-US/docs/Web/API/WebTransport/WebTransport"
        }
      ],
      "checkedOn": "2026-10-28",
      "status": "verified",
      "related": [
        {
          "label": "What is WebTransport?",
          "href": "/guides/what-is-webtransport/"
        }
      ]
    },
    {
      "slug": "webtransporterror",
      "term": "WebTransportError",
      "definition": "The error type produced by WebTransport operations. It extends DOMException and adds a source, either \"stream\" or \"session\", plus an optional streamErrorCode that the application can set when aborting a stream.",
      "details": "Constructing a bad URL throws a plain SyntaxError instead, so check instanceof WebTransportError before reading these fields.",
      "sources": [
        {
          "title": "WebTransportError (MDN)",
          "url": "https://developer.mozilla.org/en-US/docs/Web/API/WebTransportError"
        },
        {
          "title": "WebTransport (W3C Working Draft)",
          "url": "https://www.w3.org/TR/webtransport/"
        }
      ],
      "checkedOn": "2026-10-28",
      "status": "verified",
      "notes": "MDN and the W3C spec disagree on the code range: MDN says streamErrorCode is 0-255, while the spec defines an unsigned long (abort codes clamped to 0-4294967295). They also differ on the constructor: MDN shows new WebTransportError(init); the spec shows (message, options). The definition avoids stating a range.",
      "related": [
        {
          "label": "Debug WebTransport handshake errors",
          "href": "/guides/debug-webtransport-handshake-errors/"
        }
      ]
    },
    {
      "slug": "writablestream",
      "term": "WritableStream",
      "definition": "A Streams API object representing a destination you write chunks to, with built-in queuing and backpressure. WebTransport uses WritableStreams for outgoing bytes and datagrams, written through getWriter().",
      "details": "Calling abort() puts the stream in an error state and discards queued writes. On a WebTransport send stream, abort can carry an application error code.",
      "sources": [
        {
          "title": "Streams Standard (WHATWG)",
          "url": "https://streams.spec.whatwg.org/"
        },
        {
          "title": "WritableStream (MDN)",
          "url": "https://developer.mozilla.org/en-US/docs/Web/API/WritableStream"
        },
        {
          "title": "WebTransport (W3C Working Draft)",
          "url": "https://www.w3.org/TR/webtransport/"
        }
      ],
      "checkedOn": "2026-10-28",
      "status": "verified",
      "related": [
        {
          "label": "What is WebTransport?",
          "href": "/guides/what-is-webtransport/"
        }
      ]
    }
  ]
}