¿Cuál es la diferencia entre la descarga de archivos que se pueden pausar y los que no se pueden pausar?

¿Cuál es la diferencia entre la descarga de archivos que se pueden pausar y los que no se pueden pausar?

Técnicamente ¿cuál es la diferencia entre la forma de hosting (en el servidor) de

  • un archivo que se puede pausar mientras se descarga y reanudar nuevamente, y
  • ¿Un archivo que debe descargarse de una sola vez?

Respuesta1

El servidor necesitaría admitir la capacidad de servir contenido parcial y manejar solicitudes parciales. La mayoría de los servidores web modernos pueden manejarlo a menos que esté utilizando algo que haya creado internamente.

Puedes obtener más información leyendo esto.apachedocumento y los RFC pertinentes. Del documento vinculado: un ejemplo de respuesta.

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--

Respuesta2

Uno común es la falta de un encabezado content-sizeo content-range. ¿Quizás el autor olvidó configurar uno en su script de descarga?

Respuesta3

Se puede reanudar una descarga si el servidor HTTP admite solicitudes de recuperación de rango como se define en la Sección 14.35 deRFC 2616, que Wikipedia llama "servicio de bytes"Por alguna extraña razón.

  1. El servidor envía Accept-Ranges: bytesuna respuesta a una solicitud HEADo GETpara indicar que admite el servicio de bytes.
  2. El cliente envía una GETsolicitud que incluye Range: bytes=aaa-bbb, donde el desplazamiento inicial es aaabytes después del inicio del archivo y la longitud del rango es bbb - aaa + 1bytes.
  3. El servidor envía una respuesta de estado 206 (contenido parcial) que incluye Content-range: bytes aaa-bbb/cccc, donde aaa-bbbson como antes y cccces la longitud del archivo en bytes o *si el servidor no puede determinarlo, seguido de un cuerpo de respuesta que contiene el rango de bytes solicitado. Si el rango está fuera de los límites, el servidor envía una respuesta de estado 416 (rango solicitado no satisfactorio).

Algunos reproductores de vídeo utilizan solicitudes de rango para permitir la búsqueda a través de un vídeo. El contenedor de medios Ogg utilizabúsqueda de bisección interpoladapara soportar este caso de uso.

El software de servidor web popular se puede configurar para servir rangos de archivos estáticos, pero un script del lado del servidor que autentica la descarga puede necesitar o no manejar rangos por sí mismo. (Consulte el manual de su lenguaje de secuencias de comandos). Algunos operadores de servidores de descarga abiertos al público bloquean deliberadamente las solicitudes de rango porque varios administradores de descargas han utilizado el soporte para rangos de contenido para realizar más de una solicitud a un servidor, acaparando recursos que podrían usarse para proporcionar descargas. a otros usuarios.

información relacionada