Calcolatore Range HTTP
Controlli un intervallo di byte prima di inviarlo: 0-499 su un file di 10000 byte indica i primi 500 byte, un intervallo valido che riceve 206 Partial Content e la riga bytes 0-499/10000. Funzionano anche gli intervalli aperti e quelli finali. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Modalità di calcolo
- Parse
- Intestazione Range
- bytes=0-499
- Dimensione della risorsa
- 10.000
- Numero di intervalli
- 1 bytes
- Suggerimento di stato
- 206
- Byte richiesti
- 500
- Content-Range
- bytes 0-499/10000
Scrivere bytes=inizio-fine a mano sembra semplice finché non serve la forma suffisso, le estremità aperte, i set multipartiti o una riga Content-Range che corrisponda alla dimensione reale del file. La validazione fallita non viene fatturata.
Tre modi per chiedere una parte di un file
Un header Range dice al server quali byte di un file vuole, invece del file intero. La forma chiusa indica un inizio e una fine, entrambi inclusi, quindi 0-499 sono i primi 500 byte. La forma aperta indica solo l'inizio, come 500-, e arriva all'ultimo byte: così un download interrotto riprende esattamente da dove si era fermato. La forma a suffisso, come -500, chiede gli ultimi 500 byte quando si sa quanto manca ma non la posizione. Può combinare fino a 32 intervalli in un header, separati da virgole.
Controllare un intervallo sulla dimensione reale
Se indica la dimensione del file, ogni intervallo diventa una coppia di posizioni assolute: le fini aperte si chiudono alla dimensione meno uno, i suffissi diventano la finestra finale e un intervallo che inizia dopo la fine viene segnato come non soddisfacibile. Se tutti rientrano, la risposta attesa è 206 Partial Content; altrimenti 416 Range Not Satisfiable. Per un solo intervallo valido ottiene anche la riga Content-Range corrispondente, come bytes 0-499/10000 per i primi 500 byte di un file di 10000. Può incollare un header completo o costruirne uno da un inizio, una fine o un suffisso.
Cosa chiede un header Range e quali forme valgono
Secondo RFC 9110, l'unità comune è bytes e il valore dopo il segno di uguale è un insieme di specifiche di intervallo separate da virgole. Un intervallo aperto inizio- significa da quell'offset fino all'ultimo byte della rappresentazione corrente. Un intervallo suffisso -N significa gli ultimi N byte, forma usata dai gestori di download quando conoscono quanto manca ma non l'offset assoluto.
Questo calcolatore accetta una riga Range completa o la forma unità=intervalli, normalizza l'unità in bytes minuscolo, rimuove spazi opzionali e rifiuta qualsiasi unità diversa da bytes. I set multipartiti sono consentiti fino a trentadue parti per letture sparse senza inventare un mini-linguaggio.
Casi d'uso
Riprendere download interrotti
Costruisca o analizzi intervalli bytes=inizio- rispetto a una dimensione di file nota così un client riprende esattamente dove si era interrotto il trasferimento precedente, senza sovrapposizioni né lacune.
Seek multimediale e letture parziali
Calcoli header Range chiusi o aperti per lo scrubbing di video e audio e verifichi 206 versus 416 prima di emettere la richiesta verso origin o CDN.
Domande frequenti
Cosa chiede un intervallo 0-499?
I primi 500 byte. Un intervallo chiuso include entrambi gli estremi, quindi 0-499 va dal byte 0 al byte 499. Considerare la fine come esclusa lascerebbe fuori l'ultimo byte.
Come chiedo la parte finale di un file?
Con la forma a suffisso, un segno meno seguito da un numero, come -500 per gli ultimi 500 byte. I gestori di download la usano quando sanno quanto manca ma non la posizione esatta di partenza.
Quando un intervallo non è soddisfacibile?
Quando inizia oltre la fine del file. Se indica la dimensione, quell'intervallo viene segnato come non soddisfacibile e la risposta attesa è 416 Range Not Satisfiable, con una riga Content-Range che dichiara la dimensione reale.
Quanti intervalli può contenere un header?
Fino a 32, separati da virgole, così può chiedere più pezzi sparsi di un file in una volta. È accettata solo l'unità bytes, e qualsiasi altra unità viene rifiutata.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/dev/http-range-header \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"mode":"parse"}'const res = await fetch("https://api.kit.forhosting.com/dev/http-range-header", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"mode": "parse"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/http-range-header",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"mode": "parse"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/http-range-header", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"mode":"parse"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"mode":"parse"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/http-range-header", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"mode": "parse"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.http_range_header",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
I download parziali, il seek video e la ripresa dopo un'interruzione dipendono tutti dall'header di richiesta HTTP Range. Questo calcolatore di header Range HTTP accetta un valore Range da analizzare oppure campi discreti di inizio, fine e suffisso per costruirne uno, quindi restituisce intervalli strutturati con lunghezze, soddisfacibilità opzionale rispetto alla dimensione della risorsa, un indizio di stato 206 o 416 e una stringa Content-Range quando è noto un singolo intervallo soddisfacibile. Lo usi quando vuole un'aritmetica dei byte deterministica senza erigere un intero stack HTTP solo per controllare un header.
Cosa significa un header HTTP Range e quali forme accetta questo strumento
Una richiesta HTTP Range indica al server quali intervalli di byte di una rappresentazione il client desidera al posto dell'intero corpo. Un intervallo chiuso inizio-fine è inclusivo a entrambe le estremità, quindi bytes=0-499 chiede i primi cinquecento byte. Quando fornisce resource_size, ogni specifica viene risolta in offset assoluti di inizio e fine: le estremità aperte si chiudono a dimensione meno uno, i suffissi diventano la finestra finale e gli intervalli chiusi che iniziano oltre la fine del file sono segnati come non soddisfacibili. Quando ogni intervallo risolto è soddisfacibile e la risorsa non è vuota, status_hint è 206 Partial Content; altrimenti è 416 Range Not Satisfiable con Content-Range bytes asterisco barra dimensione, come rispondono le origin accurate alle riprese errate.
Contratto di input, costruire contro analizzare e campi di risposta
Imposti mode su parse o build. In modalità parse, range_header è obbligatorio e può apparire come bytes=0-499, Range: bytes=500- o multipartito bytes=0-0,-1. In modalità build fornisca suffix_length per la forma ultimi-N, oppure start con un end inclusivo opzionale per forme chiuse o aperte; non mescoli suffix_length con start o end. resource_size è opzionale in entrambe le modalità: lo ometta se le serve solo normalizzazione sintattica e lunghezze di intervalli chiusi; lo includa quando le servono flag satisfiable, bytes_requested rispetto a un file reale, content_range e status_hint. Gli interi devono essere interi sicuri non negativi; suffix_length deve essere almeno uno. In caso di successo il corpo include sempre mode, il range_header canonico, unit bytes, range_count e un array ranges. Ogni oggetto intervallo porta kind (closed, open_end o suffix), la stringa raw e, quando noti, start, end, length, suffix e satisfiable. Il bytes_requested di primo livello è la somma delle lunghezze risolte quando tutte sono note. content_range viene emesso per un singolo intervallo soddisfacibile come bytes inizio-fine barra dimensione, oppure come bytes asterisco barra dimensione se non soddisfacibile. Header non validi, mode errati e combinazioni inconsistenti falliscono con invalid_input e non vengono fatturati. Esempio: analizzare bytes=0-499 con resource_size diecimila produce lunghezza cinquecento, content_range bytes 0-499/10000 e status_hint 206.
Dove un calcolatore HTTP Range rende davvero
Gestori di download e installer riprendono grandi artefatti reinviando header Range dopo un calo di rete; un calcolatore condiviso evita errori di uno che riscaricano un ISO intero o saltano una pagina critica di un PDF. I player multimediali che fanno seek in MP4 progressivi o audio costruiscono intervalli aperti o chiusi e devono sapere se l'origin risponderà 206 o 416 prima di disegnare la scrub bar. I test di gateway API e di configurazione CDN verificano che le regole di edge inoltrino e limitino correttamente gli intervalli rispetto a dimensioni di oggetto note senza avviare un'origin completa. Poiché l'implementazione è pure parse di livello A, ogni chiamata riuscita costa il prezzo base pubblicato $0.002 senza token di modello e senza rete in uscita. Mantenga resource_size onesto, fissi gli intervalli strutturati nei test e otterrà aritmetica di ripresa riproducibile per worker di edge, strumenti CLI e laboratori HTTP in aula senza spedire un intero stack solo per contare i byte.
Casi di integrazione
Fixture di gateway e SDK
Generi stringhe canoniche Range e Content-Range nei test automatizzati affinché regole di edge e librerie client concordino su forme multipartite e a suffisso.
Domande tecniche
Quali forme di Range supporta il calcolatore di header HTTP Range?
Solo l'unità bytes: chiuso inizio-fine, aperto inizio- e suffisso -N, inclusi set multipartiti separati da virgola fino a 32 parti. Altre unità vengono rifiutate.
Come costruisco un Range per gli ultimi N byte?
Imposti mode su build e passi suffix_length (ad esempio 500) per emettere bytes=-500. Non invii start o end insieme a suffix_length.
Quando status_hint è 206 e quando 416?
Quando resource_size è fornito e ogni intervallo risolto è soddisfacibile su una risorsa non vuota, status_hint è 206. Se la risorsa è vuota o un intervallo inizia oltre la fine, è 416.
Serve resource_size per analizzare un header?
No. Senza resource_size ottiene comunque range_header normalizzato, kinds e lunghezze degli intervalli chiusi. Estremità aperte e suffissi necessitano di una dimensione per risolvere offset assoluti e il totale bytes_requested.
Quanto costa il calcolatore di header HTTP Range?
Lo strumento nel browser è gratuito. Le richieste API usano il saldo prepagato KIT a $0.002 per chiamata riuscita; l'input non valido non viene fatturato.