도구스개발

HTTP Range 요청 계산기

Range 헤더가 실제로 어느 바이트를 가리키는지 풀고 Content-Range 응답과 상태 코드를 냅니다. 파일을 조각으로 나눌 때의 헤더도 만들어 줍니다.

바이트

1,000 B입니다

응답 상태

206 Partial Content

요청한 범위를 보낼 수 있습니다.

푼 결과

요청실제 범위길이Content-Range
0-4990 ~ 499500bytes 0-499/1000
보내는 바이트 합500 B (500 B)
파일에서 차지하는 몫50%
응답 형식단일 범위
bytes=0-499는 500바이트입니다. 양 끝을 모두 포함하기 때문에 배열의 slice(0, 500)처럼 끝을 빼지 않습니다. 첫 500바이트를 달라는 뜻으로 bytes=0-500을 쓰면 501바이트가 옵니다. 이 한 칸이 Range 헤더의 단골 버그이고, 조각으로 나눌 때 다음 조각이 500에서 시작하지 501에서 시작하지 않는 것도 같은 이유입니다.
bytes=-500은 마지막 500바이트입니다. 앞의 마이너스는 음수가 아니라 "끝에서부터"를 뜻하는 접미 범위 표시입니다. "500번 앞까지"가 아닙니다. 파일 끝의 메타데이터만 먼저 읽어 보고 싶을 때 쓰며, 요청한 길이가 파일보다 크면 오류가 아니라 파일 전체를 줍니다.
416과 200을 가르는 기준은 문법입니다. 끝이 파일 크기를 넘는 것은 오류가 아니라 마지막 바이트까지로 줄여서 보냅니다. 시작이 파일 크기 이상이면 만족시킬 수 없어 416과 함께 Content-Range: bytes */크기를 돌려줍니다. 반면 문법 자체가 틀리면 헤더가 없는 것으로 보고 200으로 파일 전체를 보냅니다.
서버가 Range를 지원하려면 Accept-Ranges: bytes를 함께 내려 주어야 합니다. 이어받기와 동영상 탐색이 이 헤더 위에서 동작하며, 지원하지 않으면 브라우저가 처음부터 다시 받습니다. 이 계산기는 RFC 9110 §14를 기준으로 합니다.

사용 방법

  1. 1파일 크기를 넣습니다.
  2. 2Range 헤더를 넣으면 실제 바이트 범위와 응답 헤더, 상태 코드가 나옵니다.
  3. 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일 · 결과는 참고용 추정치입니다.