Mình nhớ Range là client gửi lên cho server chứ ?
Để giải thích điều này thì nên quay lại lịch sử xem video thời xưa với các định dạng video 1 file duy nhất. (Mp4...)
Thời xưa ví dụ chúng ta đang xem video có tổng dung lượng là 10 phút.
Ví dụ chúng ta đang xem đến phút thứ 1:02 và chúng ta muốn tua nhanh đến phút thứ 9.
Trong trường hợp xấu nhất, client chưa tải hết byte của video hoặc chưa tải được buffer byte đến phút thứ 9. Client sẽ cần chờ 1 khoản thời gian để chờ tải các byte đến phút thứ 9 sau đó mới tiếp túc xem video từ phút thứ 9 được. (Thật tốn thời gian)
Về sau thì người ta đã nghĩ ra ý tưởng hay hơn.
Ví dụ tổng video 10 phút của chúng ta có 10_000 byte.
Khi chúng ta muốn tua nhanh và xem đến phút thứ 9 để xem. Client sẽ tính toán phút thứ 9 thì sẽ ở khoảng byte thứ bao nhiêu sau đó gửi một request mới đến server với key ở Header là Range và value là vị trí của byte.
Với ví dụ trên chúng ta sẽ gửi 1 request mới với Range có value là 9_000. Server sau đó sẽ trả về các byte tiếp theo bắt đầu từ 9_000 đến 10_000.
Hiện tại thì các website video sử dụng HLS khá nhiều, và đa số các website video lớn trên thế giới đang chuyển dần đến hết sử dụng HLS ( HTTP Live Streaming ) bởi các ưu điểm của nó rất tốt cho các ứng dụng video đa quốc gia, Line Streaming ...etc...