
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-size
o 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.
- El servidor envía
Accept-Ranges: bytes
una respuesta a una solicitudHEAD
oGET
para indicar que admite el servicio de bytes. - El cliente envía una
GET
solicitud que incluyeRange: bytes=aaa-bbb
, donde el desplazamiento inicial esaaa
bytes después del inicio del archivo y la longitud del rango esbbb - aaa + 1
bytes. - El servidor envía una respuesta de estado 206 (contenido parcial) que incluye
Content-range: bytes aaa-bbb/cccc
, dondeaaa-bbb
son como antes ycccc
es 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.