회사에서 다른 팀의 outage report를 둘러 보던 중 Range Request 라는 키워드가 눈에 띄었다.
정확히 어떤 종류의 요청인지 모르겠어서 Range Request 에 대해 찾아보면서 정리!
HTTP Range Request란?
- 서버 -> 클라이언트로 HTTP 메세지의 일부만 전송할 수 있도록 허용하는 기술
- 대용량 미디어 또는 파일 다운로드 도중 일시 정지, 다시 시작 기능, Pagination 기능 등에 유용히 사용됨
- 클라이언트가 Range 헤더를 통해 특정 리소스의 일부분만 요청하면 서버가 그 부분만 리턴하는 방식으로 동작
- e.g test.zip 파일을 100byte ~ 200byte 부분만 다운로드하는 경우 등
- 해당 서버가 Range Request 지원 시, HTTP Header에 Accept-Ranges: Bytes 와 같은 설정 존재
- HTTP 응답 헤더 내 Accept-Ranges 설정이 없거나, Accept-Ranges: none 으로 설정되어 있는 경우 해당 기능 지원하지 않음
#HTTP request header
GET /test.zip HTTP/1.1
Range: bytes=100-200
...
References
- https://developer.mozilla.org/en-US/docs/Web/HTTP/Range_requests