¿Realmente funciona la función de "pausa" del administrador de descargas de Chrome?

¿Realmente funciona la función de "pausa" del administrador de descargas de Chrome?

Estoy intentando descargar un archivo grande con Chrome para Mac. Internet aquí es irregular. A veces Internet se cae o necesito pausar la descarga.

Realmente nunca logré reanudar una descarga. A veces falla abiertamente, a veces parece que funciona, pero después de 20 minutos está en el mismo lugar.

Entonces, ¿realmente funciona la función de "pausa"? ¿Funcionan esos administradores de descargas de terceros?

Respuesta1

Entonces, ¿realmente funciona la función de "pausa"?

Sí,normalmentelo hace.

Funciona de la siguiente manera: cada vez que descargas un archivo, envías una solicitud HTTP al servidor con el archivo en cuestión. El servidor responde con un mensaje HTTP, que consta de un encabezado y el contenido real.

Si se conoce el tamaño del archivo solicitado, el encabezado HTTP revela la "Longitud del contenido" a su navegador.

Por ejemplo, estoy intentando descargar un archivo PDF y esta es la respuesta:

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

Lo importante de esto son los campos Content-Lengthy Accept-Ranges.

  • Accept-Rangessignifica que puede acceder al archivo parte por parte, si es necesario
  • Content-Lengthte dice el tamaño completo del archivo

Ahora, cuando inicie una descarga, su navegador descargará el archivo como de costumbre, pero, por supuesto, también realizará un seguimiento de los bytes descargados y almacenará todo en un archivo temporal. Si luego hace clic en "pausar", la conexión simplemente se cancelará.

Sin embargo, dado que el navegador conoce el número de bytes descargados, al hacer clic en "reanudar", puede solicitar que la descarga del archivo continúe exactamente en este punto, con el Rangecampo HTTP. Todo esto se explica en elDefiniciones de campos de encabezado HTTP 1.1:

Las solicitudes de recuperación HTTP que utilizan métodos GET condicionales o incondicionales PUEDENsolicitar uno o más subrangos de la entidad, en lugar de toda la entidad, utilizando el encabezado de solicitud Rango, que se aplica a la entidad devuelta como resultado de la solicitud.


Lo complicado es que cuando su conexión es propensa a errores, es posible que Chrome no se dé cuenta de que hubo una pérdida de conexión y, por lo tanto, registre una cantidad incorrecta de bytes descargados o incluso no pueda reanudar la conexión con el servidor. No conozco los aspectos internos de Chrome al hacer esto, peropodríano podrá reanudar una descarga si no puede enviar una solicitud HTTP exitosa.

De acuerdo aesta respuesta, En teoría, Chrome podría considerar una descarga como "finalizada" aunque la conexión TCP se haya cerrado o cancelado manualmente. Esto explicaría "parece que está funcionando" que has descrito.

Además, es posible que algunos servidores no admitan el Rangecomando, aunque creo que esto es poco común. Algunos sitios como Rapidshare parecen imposibilitar la reanudaciónalgunodescargas.

Finalmente, podrías considerar usar un administrador de descargas y ver si eso resuelve tus problemas. Aparte de eso, usar BitTorrent para descargar archivos, si es posible, es probablemente la opción más segura que una simple descarga HTTP.

Respuesta2

Entonces, ¿realmente funciona la función de "pausa"?

No, no funciona en Google Chrome. (Bueno, el botón de pausa funciona, pero parece que el sistema interno de Google Chrome nunca deja de descargar el archivo cuando haces clic en el botón de Pausa. El botón parece no hacer nada en absoluto. Esto se puede ver cuando se pierde la conexión a Internet. Esto rompe Google Chrome y el navegador no puede reanudarse).

Para probar, escribí una página web simple que permite descargar archivos y también permite reanudar la descarga. Al probar cómo va la descarga pausada con Google Chrome, descubrí que en realidad el navegador me permite hacer clic en "Pausar" en una transferencia en curso, sin embargo, hacer clic en "Reanudar" no envía ninguna solicitud HTTP (rango).

El navegador Firefox parece ser el navegador que puede pausar la transferencia y luego reanudarla correctamente a través del encabezado de rango HTTP.

Con respecto a los administradores de descargas de terceros, no tengo idea, seguramente habrá alguno que sea capaz de pausar y reanudar una descarga HTTP.

Respuesta3

Yo personalmente uso mucho wget y curl.

$ wget -c website.com/file.zip

Luego, si la conexión se cierra, simplemente ejecute el mismo comando nuevamente y continuará donde lo dejó. Si wget no se cierra automáticamente con un error de conexión, ^C, use las flechas hacia arriba y simplemente ejecute el comando hasta que termine de descargarse. Puede configurarlo en un bucle y hacer que ejecute el comando una y otra vez [con un retraso] hasta que proporcione un código de salida 0 [Éxito].

curl también es muy bueno, a menudo prefiero curl a wget, pero wget suele ser más fácil a menos que sepas lo que estás haciendo.

Respuesta4

Agregando mi 2c del año 2020, Chrome 85.0.4183.102

Comencé a descargar un archivo de 350 MB a través de 4G deficiente, pero necesitaba ancho de banda para otras cosas, por lo que lo pausé en 120 MB, la velocidad antes de eso era de aproximadamente 1 a 2 MB/s. Cuando hice una pausa, mis otras actividades web todavía parecían tener poco ancho de banda. Cuando después de ~20 minutos reanudé la descarga, se realizaron entre 5 y 10 saltos enormes de 120 MB a 350 MB y se descargó el archivo. Entonces sospecho que Chrome todavía se descarga internamente.

información relacionada