2013-03-04 7 views
14

Sto giocando con l'intestazione della gamma HTTP (specs).Posso utilizzare l'intestazione dell'intervallo HTTP per caricare file parziali "di proposito"?

Da quello che ho capito che posso impostare intervalli di byte dei file ala

0-199/2000 
200-499/2000 
500-799/2000 
etc 

Domanda:
dire che ho solo voglia di accedere a determinati intervalli di un file, sarebbe possibile specificare questi intervalli e quindi lavorare con i dati "incompleti" che ho ricevuto? Sto giocando con il filtraggio di un file di registro di grandi dimensioni, quindi sono curioso di sapere se qualcosa del genere potrebbe funzionare.

Grazie per gli input!

+1

Mi sembra il caso perfetto per utilizzare quell'intestazione. http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.2 – Supericy

+0

Sì, penso anche che sia stato sviluppato esattamente per questi casi. Non hai provato se funziona? – VisioN

+0

Come già accennato, è esattamente * per quale intervallo sono richieste le richieste. Questo è generalmente il modo in cui lo "streaming" dei media viene realizzato tramite HTTP. – rdlowrey

risposta

17

Hai ragione il link che hai postato nel commento sarebbe probabilmente il miglior approche. Visto che la tua domanda sembrava interessante, l'ho provata. Probabilmente lo hai fatto, ma qui c'è uno snippet (per altri che potrebbe apparire)

var xmlhttp=new XMLHttpRequest(); 
xmlhttp.open("GET","data.dat",false); 
xmlhttp.setRequestHeader("Range", "bytes=100-200"); 
xmlhttp.send(); 
console.info(xmlhttp); //--> returns only the partial content 
// Tested on Win7 with chrome 46+ 
+0

sì. è carino. Ci sto anche giocando. Curioso come impostare le entità personalizzate inclusa la logica correlata. – frequent

+1

Suppongo che le entità personalizzate implichino lo scripting/programmazione del server e la dipendenza dal webserver e dal linguaggio di programmazione. ecco una domanda simile/risposta/approche/suggerimento/... [collegamento] (http://stackoverflow.com/questions/1434647/using-the-http-range-header-with-a-range-specifier-other -than-bytes) :). –

+0

Grazie per il link! – frequent