Um download pode ser retomado se o servidor HTTP oferecer suporte a solicitações de recuperação de intervalo, conforme definido na Seção 14.35 do RFC 2616 , que A Wikipedia chama " serviço de bytes " por algum motivo estranho.
- O servidor envia
Accept-Ranges: bytes
em resposta a uma solicitação HEAD
ou GET
para indicar que ele suporta a veiculação de bytes.
- O cliente envia uma solicitação
GET
incluindo Range: bytes=aaa-bbb
, em que o deslocamento inicial é aaa
bytes após o início do arquivo e o comprimento do intervalo é bbb - aaa + 1
bytes.
- O servidor envia uma resposta de status 206 (conteúdo parcial) incluindo
Content-range: bytes aaa-bbb/cccc
, em que aaa-bbb
é como antes e cccc
é o tamanho do arquivo em bytes ou *
se o servidor não puder determiná-lo, seguido por um corpo de resposta contendo o intervalo de bytes solicitado. Se o intervalo estiver fora dos limites, o servidor envia uma resposta de status 416 (intervalo solicitado não satisfatório).
Alguns players de vídeo usam solicitações de intervalo para oferecer suporte à pesquisa por meio de um vídeo. O contêiner de mídia Ogg usa a pesquisa de bissetriz interpolada para dar suporte a este caso de uso.
O software popular de servidor da Web pode ser configurado para atender a intervalos de arquivos estáticos, mas um script do lado do servidor que autentica o download pode ou não precisar lidar com os próprios intervalos. (Verifique o manual do seu idioma de script.) Algumas operadoras de servidores de download abrem para o público deliberadamente solicitando solicitações de intervalo porque vários gerenciadores de download usaram suporte para intervalos de conteúdo para fazer mais de uma solicitação a um servidor, monopolizando recursos que poderiam ser usados para fornecer downloads para outros usuários.