Calculateur Range HTTP
Vérifiez une plage d'octets avant de l'envoyer : 0-499 sur un fichier de 10000 octets désigne les 500 premiers octets, une plage valable qui reçoit 206 Partial Content et la ligne bytes 0-499/10000. Les plages ouvertes et de fin de fichier fonctionnent aussi. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Mode de calcul
- Parse
- En-tête Range
- bytes=0-499
- Taille de la ressource
- 10 000
- Nombre de plages
- 1 bytes
- Suggestion de statut
- 206
- Octets demandés
- 500
- Content-Range
- bytes 0-499/10000
Écrire bytes=début-fin à la main semble simple jusqu'à ce que vous ayez besoin de la forme suffixe, d'extrémités ouvertes, d'ensembles multipartites ou d'une ligne Content-Range qui correspond à la taille réelle du fichier. Une validation échouée n'est pas facturée.
Trois façons de demander une partie d'un fichier
Un en-tête Range indique au serveur quels octets d'un fichier vous voulez au lieu du fichier entier. La forme fermée donne un début et une fin, tous deux inclus : 0-499 correspond aux 500 premiers octets. La forme ouverte ne donne que le début, comme 500-, et va jusqu'au dernier octet, ce qui permet de reprendre un téléchargement interrompu là où il s'est arrêté. La forme suffixe, comme -500, demande les 500 derniers octets quand on connaît ce qui reste mais pas la position. Vous pouvez combiner jusqu'à 32 plages dans un en-tête, séparées par des virgules.
Vérifier une plage par rapport à la taille réelle
Si vous indiquez la taille du fichier, chaque plage est convertie en positions absolues : les fins ouvertes se ferment à la taille moins un, les suffixes deviennent la fenêtre finale et une plage qui commence après la fin est marquée comme non satisfaisable. Si toutes les plages tiennent, la réponse attendue est 206 Partial Content ; sinon, c'est 416 Range Not Satisfiable. Pour une seule plage valable, vous obtenez aussi la ligne Content-Range correspondante, comme bytes 0-499/10000 pour les 500 premiers octets d'un fichier de 10000. Vous pouvez coller un en-tête complet ou en construire un à partir d'un début, d'une fin ou d'un suffixe.
Ce que demande un en-tête Range et les formes acceptées
Selon RFC 9110, l'unité courante est bytes, et la valeur après le signe égal est un ensemble de spécifications de plage séparées par des virgules. Une plage ouverte début- signifie à partir de ce décalage jusqu'au dernier octet de la représentation courante. Une plage suffixe -N signifie les N derniers octets, forme que les gestionnaires de téléchargement utilisent lorsqu'ils connaissent le reste sans l'offset absolu.
Ce calculateur accepte une ligne Range complète ou la forme unité=plages, normalise l'unité en bytes minuscules, supprime les espaces optionnels et rejette toute unité autre que bytes. Les ensembles multipartites sont autorisés jusqu'à trente-deux parties pour des lectures éparses sans inventer un mini-langage.
Cas d’usage
Reprendre des téléchargements interrompus
Construisez ou analysez des plages bytes=début- face à une taille de fichier connue pour qu'un client reprenne exactement là où le transfert précédent s'est arrêté, sans chevauchement ni trous.
Seek média et lectures partielles
Calculez des en-têtes Range fermés ou ouverts pour le scrubbing vidéo et audio, et vérifiez 206 versus 416 avant d'émettre la requête vers l'origine ou le CDN.
Questions fréquentes
Que demande une plage 0-499 ?
Les 500 premiers octets. Une plage fermée inclut ses deux bornes : 0-499 va donc de l'octet 0 à l'octet 499. Traiter la fin comme exclue laisserait le dernier octet de côté.
Comment demander la fin d'un fichier ?
Avec la forme suffixe, un signe moins suivi d'un nombre, comme -500 pour les 500 derniers octets. Les gestionnaires de téléchargement l'utilisent quand ils savent ce qu'il reste à télécharger sans connaître la position exacte de départ.
Quand une plage est-elle impossible à satisfaire ?
Quand elle commence après la fin du fichier. Si la taille est indiquée, cette plage est marquée comme non satisfaisable et la réponse attendue est 416 Range Not Satisfiable, avec une ligne Content-Range qui indique la taille réelle.
Combien de plages un en-tête peut-il contenir ?
Jusqu'à 32, séparées par des virgules, ce qui permet de demander plusieurs morceaux épars d'un fichier en une fois. Seule l'unité bytes est acceptée, et toute autre unité est refusée.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre 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)Exemple de requête
{
"mode": "parse"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.http_range_header",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Les téléchargements partiels, le seek vidéo et la reprise après interruption dépendent tous de l'en-tête de requête HTTP Range. Ce calculateur d'en-tête Range HTTP accepte soit une valeur Range à analyser, soit des champs discrets de début, de fin et de suffixe pour en construire une, puis renvoie des plages structurées avec longueurs, satisfaisabilité optionnelle face à la taille de la ressource, une indication de statut 206 ou 416, et une chaîne Content-Range lorsqu'une seule plage satisfaisable est connue. Utilisez-le lorsque vous voulez une arithmétique d'octets déterministe sans déployer une pile HTTP complète juste pour vérifier un en-tête.
Ce qu'un en-tête HTTP Range signifie et quelles formes cet outil accepte
Une requête HTTP Range indique au serveur quels intervalles d'octets d'une représentation le client souhaite à la place du corps entier. Une plage fermée début-fin est inclusive aux deux extrémités, donc bytes=0-499 demande les cinq cents premiers octets. Lorsque vous fournissez resource_size, chaque spécification est résolue en offsets absolus de début et de fin : les extrémités ouvertes se ferment à taille moins un, les suffixes deviennent la fenêtre finale, et les plages fermées qui commencent au-delà de la fin du fichier sont marquées non satisfaisables. Lorsque chaque plage résolue est satisfaisable et que la ressource n'est pas vide, status_hint vaut 206 Partial Content ; sinon 416 Range Not Satisfiable avec Content-Range bytes astérisque barre taille, comme répondent les origines soigneuses aux reprises incorrectes.
Contrat d'entrée, construire versus analyser, et champs de réponse
Définissez mode sur parse ou build. En mode parse, range_header est requis et peut ressembler à bytes=0-499, Range: bytes=500- ou multipartite bytes=0-0,-1. En mode build fournissez suffix_length pour la forme derniers-N, ou start avec un end inclusif optionnel pour les formes fermées ou ouvertes ; ne mélangez pas suffix_length avec start ou end. resource_size est optionnel dans les deux modes : omettez-le si vous n'avez besoin que de la normalisation syntaxique et des longueurs de plages fermées ; incluez-le lorsque vous avez besoin des drapeaux satisfiable, de bytes_requested face à un fichier réel, de content_range et de status_hint. Les entiers doivent être des entiers sûrs non négatifs ; suffix_length doit valoir au moins un. En cas de succès le corps inclut toujours mode, le range_header canonique, unit bytes, range_count et un tableau ranges. Chaque objet de plage porte kind (closed, open_end ou suffix), la chaîne raw et, lorsqu'ils sont connus, start, end, length, suffix et satisfiable. Le bytes_requested de premier niveau est la somme des longueurs résolues lorsque toutes sont connues. content_range est émis pour une seule plage satisfaisable sous la forme bytes début-fin barre taille, ou bytes astérisque barre taille si non satisfaisable. En-têtes invalides, modes incorrects et combinaisons incohérentes échouent avec invalid_input et ne sont pas facturés. Exemple : analyser bytes=0-499 avec resource_size dix mille produit une longueur de cinq cents, content_range bytes 0-499/10000 et status_hint 206.
Où un calculateur HTTP Range apporte une vraie valeur
Les gestionnaires de téléchargement et les installateurs reprennent de gros artefacts en rejouant des en-têtes Range après une coupure réseau ; un calculateur partagé évite les erreurs d'un qui retéléchargent un ISO entier ou sautent une page critique d'un PDF. Les lecteurs multimédias qui cherchent dans un MP4 progressif ou de l'audio construisent des plages ouvertes ou fermées et doivent savoir si l'origine répondra 206 ou 416 avant d'afficher la barre de scrub. Les tests de passerelles API et de configuration CDN vérifient que les règles de bord transfèrent et bornent correctement les plages face à des tailles d'objet connues sans démarrer une origine complète. Comme l'implémentation est pure parse de niveau A, chaque appel réussi coûte le prix de base publié $0.002 sans jetons de modèle ni réseau sortant. Gardez resource_size honnête, figez les plages structurées dans les tests, et vous obtenez une arithmétique de reprise reproductible pour workers de bord, outils CLI et laboratoires HTTP en classe sans livrer une pile complète juste pour compter des octets.
Cas d'intégration
Fixtures de passerelle et de SDK
Générez des chaînes canoniques Range et Content-Range dans des tests automatisés pour que les règles de bord et les bibliothèques clientes s'accordent sur les formes multipartites et suffixe.
Questions techniques
Quelles formes de Range le calculateur d'en-tête HTTP Range prend-il en charge ?
Unité bytes uniquement : fermé début-fin, ouvert début- et suffixe -N, y compris les ensembles multipartites séparés par des virgules jusqu'à 32 parties. Les autres unités sont rejetées.
Comment construire un Range pour les N derniers octets ?
Définissez mode sur build et passez suffix_length (par exemple 500) pour émettre bytes=-500. N'envoyez pas start ou end avec suffix_length.
Quand status_hint vaut-il 206 plutôt que 416 ?
Lorsque resource_size est fourni et que chaque plage résolue est satisfaisable sur une ressource non vide, status_hint vaut 206. Si la ressource est vide ou qu'une plage commence au-delà de la fin, c'est 416.
Faut-il resource_size pour analyser un en-tête ?
Non. Sans resource_size vous obtenez déjà range_header normalisé, kinds et longueurs des plages fermées. Les extrémités ouvertes et les suffixes ont besoin d'une taille pour résoudre les offsets absolus et le total bytes_requested.
Quel est le coût du calculateur d'en-tête HTTP Range ?
L'outil navigateur est gratuit. Les requêtes API utilisent le solde prépayé KIT à $0.002 par appel réussi ; une entrée invalide n'est pas facturée.