Passa al contenuto principale

1. Introduzione (Introduction)

Le estensioni HTTP (come definite nella sezione 16 di [HTTP]) a volte devono accedere alle funzionalità del protocollo di trasporto sottostante, come la consegna inaffidabile (offerta da [QUIC-DGRAM]), per abilitare funzionalità desiderabili. Ad esempio, ciò potrebbe consentire l'introduzione di una versione inaffidabile del metodo CONNECT e l'aggiunta della consegna inaffidabile ai WebSocket [WEBSOCKET].

Nella sezione 2, questo documento descrive i datagrammi HTTP (HTTP Datagrams), una convenzione per trasmettere datagrammi bidirezionali e potenzialmente inaffidabili all'interno di una connessione HTTP, con multiplexing quando possibile. Sebbene i datagrammi HTTP siano associati a richieste HTTP, non fanno parte del contenuto del messaggio. Sono invece destinati all'uso da parte di estensioni HTTP (come il metodo CONNECT) e sono compatibili con tutte le versioni di HTTP.

Quando HTTP viene eseguito su un protocollo di trasporto che supporta la consegna inaffidabile (ad esempio quando l'estensione QUIC DATAGRAM [QUIC-DGRAM] è disponibile per HTTP/3 [HTTP/3]), i datagrammi HTTP possono utilizzare tale capacità.

Nella sezione 3, questo documento descrive il protocollo Capsule HTTP (HTTP Capsule Protocol), che consente la trasmissione di datagrammi HTTP utilizzando una consegna affidabile. Ciò riguarda i casi HTTP/3 in cui l'uso del frame QUIC DATAGRAM non è disponibile o non è desiderabile, o in cui il protocollo di trasporto fornisce solo consegna affidabile, come con HTTP/1.1 [HTTP/1.1] o HTTP/2 [HTTP/2] su TCP [TCP].

1.1. Convenzioni e definizioni (Conventions and Definitions)

Le parole chiave "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY" e "OPTIONAL" in questo documento devono essere interpretate come descritto in BCP 14 [RFC2119] [RFC8174] quando, e solo quando, appaiono in maiuscolo, come mostrato qui.

Questo documento utilizza la terminologia di [QUIC].

Quando questo documento definisce tipi di protocollo, il formato di definizione utilizza la notazione della sezione 1.3 di [QUIC]. Quando i campi all'interno dei tipi sono numeri interi, vengono codificati utilizzando la codifica di interi a lunghezza variabile della sezione 16 di [QUIC]. I valori interi non devono essere codificati con il numero minimo di byte necessari.

In questo documento, il termine "intermediary" (intermediario) si riferisce a un intermediario HTTP come definito nella sezione 3.7 di [HTTP].