
Tecnicamente, qual a diferença entre a forma de hospedagem (no servidor) de
- um arquivo que pode ser pausado durante o download e retomado novamente, e
- um arquivo que precisa ser baixado de uma só vez?
Responder1
O servidor precisaria suportar a capacidade de servir conteúdo parcial e lidar com solicitações parciais. A maioria dos servidores web modernos são capazes de lidar com isso, a menos que você esteja usando algo criado internamente.
Você pode obter mais informações lendo istoApachedocumento e os RFCs relevantes. Do documento vinculado - um exemplo de resposta.
HTTP/1.1 206 Partial Content
Date: Wed, 15 Nov 1995 06:25:24 GMT
Last-Modified: Wed, 15 Nov 1995 04:58:08 GMT
Content-type: multipart/byteranges; boundary=THIS_STRING_SEPARATES
--THIS_STRING_SEPARATES
Content-type: application/pdf
Content-range: bytes 500-999/8000
...the first range...
--THIS_STRING_SEPARATES
Content-type: application/pdf
Content-range: bytes 7000-7999/8000
...the second range
--THIS_STRING_SEPARATES--
Responder2
Um problema comum é a falta de um cabeçalho content-size
ou content-range
. Talvez o autor tenha esquecido de definir um no script de download?
Responder3
Um download pode ser retomado se o servidor HTTP suportar solicitações de recuperação de intervalo conforme definido na Seção 14.35 doRFC 2616, que a Wikipedia chama de "serviço de bytes"por algum motivo estranho.
- O servidor envia
Accept-Ranges: bytes
uma resposta a uma solicitaçãoHEAD
ouGET
para indicar que oferece suporte ao serviço de bytes. - O cliente envia uma
GET
solicitação incluindoRange: bytes=aaa-bbb
, onde 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
, ondeaaa-bbb
são como antes ecccc
é o comprimento 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 enviará uma resposta de status 416 (intervalo solicitado não satisfatório).
Alguns players de vídeo usam solicitações de intervalo para dar suporte à busca em um vídeo. O contêiner de mídia Ogg usapesquisa de bissecção interpoladapara apoiar este caso de uso.
Softwares de servidor web populares podem ser configurados para servir intervalos de arquivos estáticos, mas um script do lado do servidor que autentica o download pode ou não precisar lidar com os intervalos por conta própria. (Verifique o manual da sua linguagem de script.) Alguns operadores de servidores de download abertos ao público bloqueiam deliberadamente 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.