2009-04-04 3 views

risposta

67

Range viene utilizzato nella richiesta, per chiedere un determinato intervallo (o intervalli) di byte. Content-Range viene utilizzato nella risposta, per indicare quali byte il server ti fornisce (che potrebbe essere diverso dall'intervallo richiesto) e per quanto tempo l'intero contenuto è (se noto).

+7

Leggi risposta btimby qui sotto. –

+2

@BrunoMartinez Sebbene sia possibile utilizzare Content-Range nella richiesta, è stato abbastanza chiaro dalla domanda che l'OP chiedeva di scaricare contenuti con un intervallo particolare. Stavo rispondendo in base a ciò che l'OP chiedeva, non cercando di fornire una descrizione completa di ogni caso in cui fosse possibile utilizzare Content-Range. –

+3

@BrianCampbell, naturalmente sei corretto. Volevo solo registrare i miei risultati per la posterità. Ho modificato la mia risposta per assicurarmi che non dia l'impressione che la tua risposta sia in qualche modo sbagliata. – btimby

113

In realtà, la risposta accettata non è completa. Content-Range non è utilizzato solo nelle risposte. È anche legale nelle richieste che forniscono un ente giuridico.

Ad esempio, un PUT HTTP fornisce un corpo di entità, potrebbe fornire solo una parte di un'entità. Pertanto, la richiesta PUT può includere un'intestazione Content-Range che indica al server in cui il corpo dell'entità parziale deve essere unito all'entità.

Per esempio, si deve prima creare e poi aggiungere a un file usando HTTP:

Richiesta 1:

PUT /file HTTP/1.1 
Host: server 
Content-Length: 1 

a 

Richiesta 2:

PUT /file HTTP/1.1 
Host: server 
Content-Range: 1-2/* 
Content-Length: 1 

a 

Come, vediamo il contenuto del file ...

Richiesta 3:

GET /file HTTP/1.1 
Host: server 

HTTP/1.1 200 OK 
Content-Length: 2 

aa 

Ciò consente l'accesso casuale ai file, sia in lettura che in scrittura su HTTP. Volevo solo chiarire, mentre stavo facendo ricerche sull'uso di Content-Range in un client WebDAV che sto sviluppando, quindi forse questa informazione estesa si rivelerà utile a qualcun altro.

+6

Content-Range non è legale nelle richieste. –

+10

Questo commento non è corretto. RFC2616 (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.16) non limita l'intestazione 'Content-Range' alle richieste, ma lo associa a un" entity-body parziale " . In realtà è molto comune utilizzare la funzione per facilitare il caricamento del caricamento o il caricamento in blocco. – Hank

+1

Il commento di Mark è corretto. Vedi: http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-23, sezione 4.3.4. – grzes