O recurso de “pausa” do gerenciador de downloads do Chrome realmente funciona?

O recurso de “pausa” do gerenciador de downloads do Chrome realmente funciona?

Estou tentando baixar um arquivo grande com o Chrome para Mac. A internet aqui é irregular. Às vezes a Internet cai ou preciso pausar o download.

Nunca consegui retomar um download. Às vezes falha abertamente, às vezes parece que está funcionando, mas depois de 20 minutos está no mesmo lugar.

Então, o recurso “pause” realmente funciona? Esses gerenciadores de download de terceiros funcionam?

Responder1

Então, o recurso “pause” realmente funciona?

Sim,normalmenteisso acontece.

Funciona da seguinte forma: Sempre que você baixa um arquivo, você envia uma solicitação HTTP ao servidor com o arquivo em questão. O servidor responde com uma mensagem HTTP, que consiste em um cabeçalho e o conteúdo real.

Se o tamanho do arquivo solicitado for conhecido, o cabeçalho HTTP revela o “Comprimento do conteúdo” ao seu navegador.

Por exemplo, estou tentando baixar um arquivo PDF e aqui está a resposta:

charon:~ werner$ curl -I www.ready.gov/business/_downloads/sampleplan.pdf
HTTP/1.1 200 OK
Server: Apache
ETag: "230b73353fc7715f06267967df11be04:1241094925"
Last-Modified: Wed, 29 Apr 2009 20:56:46 GMT
Accept-Ranges: bytes
Content-Length: 293125
Content-Type: application/pdf
Date: Wed, 07 Sep 2011 14:49:33 GMT
Connection: keep-alive

O que é importante sobre isso são os campos Content-Lengthe Accept-Ranges.

  • Accept-Rangessignifica que você pode acessar o arquivo parte por parte, se necessário
  • Content-Lengthinforma o tamanho total do arquivo

Agora, quando você inicia um download, seu navegador fará o download do arquivo normalmente, mas é claro que também registrará os bytes baixados e armazenará tudo em um arquivo temporário. Se você clicar em "pausar", a conexão será simplesmente abortada.

Porém, como o navegador sabe a quantidade de bytes baixados, ao clicar em “continuar”, ele pode solicitar que o download do arquivo seja continuado exatamente neste ponto, com o Rangecampo HTTP. Tudo isso está explicado noDefinições de campo de cabeçalho HTTP 1.1:

Solicitações de recuperação HTTP usando métodos GET condicionais ou incondicionais PODEMsolicitar um ou mais subintervalos da entidade, em vez de toda a entidade, usando o cabeçalho da solicitação Range, que se aplica à entidade retornada como resultado da solicitação.


O complicado é que quando sua conexão está sujeita a erros, o Chrome pode não perceber que houve uma perda de conexão, registrando um número errado de bytes baixados ou até mesmo falhando ao retomar a conexão com o servidor. Não sei sobre os detalhes internos do Chrome para fazer isso, maspodernão será possível retomar um download se não for possível enviar uma solicitação HTTP bem-sucedida.

De acordo comesta resposta, o Chrome poderia, teoricamente, considerar um download como "concluído", mesmo que a conexão TCP tenha sido fechada/abortada manualmente. Isso explicaria o "parece que está funcionando" que você descreveu.

Além disso, alguns servidores podem não suportar o Rangecomando, embora eu ache que isso é raro. Alguns sites como o Rapidshare parecem impossibilitar a retomadaalgunsTransferências.

Finalmente, você pode considerar usar um gerenciador de downloads e ver se isso resolve seus problemas. Fora isso, usar o BitTorrent para baixar arquivos, se possível, é provavelmente a opção mais segura do que um download HTTP simples.

Responder2

Então, o recurso “pause” realmente funciona?

Não, não funciona no Google Chrome. (Bem, o botão de pausa funciona, mas parece que o interno do Google Chrome nunca para de baixar o arquivo quando você clica no botão Pausa. O botão parece não fazer nada. Isso pode ser visto quando a conexão com a Internet é perdida. Isto quebra o Google Chrome e o navegador não consegue retomar).

Para testar escrevi uma página simples que permite baixar arquivos e também suporta a retomada do download. Testando como funciona o download pausado com o Google Chrome, descobri que na verdade o navegador me permite clicar em "Pausar" em uma transferência em andamento, porém clicar em "Retomar" não envia nenhuma solicitação HTTP (intervalo).

O navegador Firefox parece ser o navegador capaz de pausar a transferência e retomá-la corretamente através do cabeçalho do intervalo HTTP.

Em relação aos gerenciadores de download de terceiros, não tenho ideia, certamente haverá alguns que serão capazes de pausar e retomar um download HTTP.

Responder3

Eu pessoalmente uso muito wget e curl.

$ wget -c website.com/file.zip

Então, se a conexão for encerrada, basta executar o mesmo comando novamente e ele continuará de onde parou. Se o wget não encerrar automaticamente com um erro de conexão, ^C, use as setas para cima e execute o comando até terminar o download. Você pode configurá-lo em um loop e executar o comando repetidamente [com um atraso] até fornecer um código de saída 0 [Sucesso].

curl também é muito bom, geralmente prefiro curl em vez de wget, mas wget geralmente é mais fácil, a menos que você saiba o que está fazendo.

Responder4

Adicionando meu 2c do ano 2020, Chrome 85.0.4183.102

Comecei a baixar arquivos de 350 MB em 4G ruim, mas precisava de largura de banda para outras coisas, então pausei em 120 MB, a velocidade era de cerca de 1-2 MB/s antes disso. Quando fiz uma pausa, minhas outras atividades na web ainda pareciam ter largura de banda baixa. Quando, após cerca de 20 minutos, retomei o download, ele deu 5 a 10 saltos enormes de 120 MB para 350 MB e o arquivo foi baixado. Portanto, suspeito que o Chrome ainda faça downloads internamente.

informação relacionada