Passa al contenuto principale

1. Introduzione

I client HTTP incontrano spesso trasferimenti di dati interrotti a causa di richieste annullate o connessioni cadute. Quando un client ha memorizzato una rappresentazione parziale, è preferibile richiedere la parte restante di tale rappresentazione con una richiesta successiva anziché trasferire di nuovo l'intera rappresentazione. Analogamente, i dispositivi con memoria locale limitata possono trarre vantaggio dalla possibilità di richiedere soltanto un sottoinsieme di una rappresentazione più grande, per esempio una singola pagina di un documento molto esteso o le dimensioni di un'immagine incorporata.

Il presente documento definisce le richieste di intervallo HTTP/1.1, le risposte parziali e il tipo di media multipart/byteranges. Le richieste di intervallo sono una funzionalità opzionale (OPTIONAL) di HTTP, progettata in modo che i destinatari che non la implementano (o che non la supportano per la risorsa di destinazione) possano rispondere come a una normale richiesta GET senza compromettere l'interoperabilità. Le risposte parziali sono indicate da un codice di stato distinto, così che le cache che non implementano tale funzionalità non le confondano con risposte complete.

Sebbene il meccanismo delle richieste di intervallo sia progettato per consentire tipi di intervallo estensibili, la presente specifica definisce soltanto le richieste di intervalli di byte.

1.1 Conformità e gestione degli errori​

Le parole chiave "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY" e "OPTIONAL" nel presente documento devono essere interpretate come descritto in [RFC2119].

I criteri di conformità e le considerazioni sulla gestione degli errori sono definiti nella Sezione 2.5 di [RFC7230].

1.2 Notazione sintattica​

La presente specifica usa la notazione Augmented Backus-Naur Form (ABNF) di [RFC5234] con l'estensione per le liste definita nella Sezione 7 di [RFC7230], che consente di definire in modo compatto liste separate da virgole mediante l'operatore '#' (analogamente a come l'operatore '*' indica la ripetizione). L'Appendice C descrive le regole importate da altri documenti. L'Appendice D presenta la grammatica raccolta, con tutti gli operatori di lista espansi nella normale notazione ABNF.