HTTP Range 요청 계산기
Range 헤더가 실제로 어느 바이트를 가리키는지 풀고 Content-Range 응답과 상태 코드를 냅니다. 파일을 조각으로 나눌 때의 헤더도 만들어 줍니다.
1,000 B입니다
응답 상태
206 Partial Content
요청한 범위를 보낼 수 있습니다.
푼 결과
| 요청 | 실제 범위 | 길이 | Content-Range |
|---|---|---|---|
| 0-499 | 0 ~ 499 | 500 | bytes 0-499/1000 |
사용 방법
- 1파일 크기를 넣습니다.
- 2Range 헤더를 넣으면 실제 바이트 범위와 응답 헤더, 상태 코드가 나옵니다.
- 3조각으로 나누기로 바꾸면 조각마다의 Range 헤더를 한꺼번에 만들 수 있습니다.
자주 묻는 질문
500바이트입니다. 양 끝을 모두 포함하기 때문에 0번부터 499번까지가 됩니다. 배열의 slice(0, 500)처럼 끝을 빼지 않으므로, 첫 500바이트를 달라는 뜻으로 bytes=0-500을 쓰면 501바이트가 옵니다. Range 헤더에서 가장 흔한 실수입니다.
마지막 500바이트라는 뜻입니다. 앞의 마이너스는 음수가 아니라 "끝에서부터"를 뜻하는 접미 범위 표시라, "500번 앞까지"가 아닙니다. 파일 끝의 메타데이터만 먼저 읽어 볼 때 씁니다. 요청한 길이가 파일보다 크면 오류가 아니라 파일 전체를 줍니다.
문법은 맞지만 범위를 하나도 만족시킬 수 없을 때입니다. 시작 위치가 파일 크기 이상이거나 길이가 0인 접미 범위(bytes=-0)일 때 416 Range Not Satisfiable과 함께 Content-Range: bytes */크기를 돌려줍니다. 별표 자리에 크기만 적는 것이 이 응답의 특징입니다.
오류가 아닙니다. 마지막 바이트까지로 줄여서 206으로 보냅니다. 1,000바이트 파일에 bytes=900-5000을 요청하면 900부터 999까지 100바이트가 옵니다. 파일 크기를 모른 채 넉넉히 요청해도 되는 이유입니다.
헤더가 없는 것으로 보고 200으로 파일 전체를 보냅니다. 416이 아닙니다. 끝이 시작보다 작거나(bytes=500-100) 숫자가 아닌 것이 섞이면 여기에 해당하며, 이 둘을 헷갈리는 구현이 흔합니다.
쉼표로 나눠 요청할 수 있지만 응답이 multipart/byteranges가 됩니다. 경계 문자열과 조각마다의 헤더가 붙어 실제 전송량이 요청한 바이트 합보다 커지고 파싱도 번거로워, 여러 범위를 지원하지 않고 첫 범위만 보내거나 200으로 전체를 보내는 서버도 많습니다.
전송되지 않습니다. 모든 계산은 브라우저 안에서만 이루어지고, 넣으신 값은 이 기기를 벗어나지 않습니다.
알아두면 좋은 점
- RFC 9110 §14를 기준으로 합니다.
- 서버가 Range를 지원하려면 Accept-Ranges: bytes를 함께 내려 주어야 합니다.
- 여러 범위를 지원하지 않는 서버가 많습니다. 실제 동작은 대상 서버로 확인하시기 바랍니다.
함께 보면 좋은 도구
마지막 검증: 2026년 8월 31일 · 결과는 참고용 추정치입니다.