Puede solicitar reanudar una respuesta HTTP (grande) (por ejemplo, descarga de archivo) utilizando Range
y If-Range
solicitar encabezados con el rango de bytes especificado y el identificador de archivo único o la marca de tiempo de modificación del archivo, respectivamente. Esto es posible si el servidor ha enviado los Accept-Ranges: bytes
y ETag
o Last-Modified
cabeceras de respuesta de la respuesta inicial con, respectivamente, la notificación de que las solicitudes de intervalo de bytes soporte el servidor, el identificador de archivo único y la fecha y hora de modificación del archivo.
La respuesta inicial puede verse así ( ETag
generalmente se compone de nombre de archivo, tamaño y marca de tiempo de la última modificación):
Accept-Ranges: bytes
ETag: file.ext_1234_1234567890
Content-Range: bytes 0-1233/1234
Cuando la descarga se cancela, por ejemplo, en 1 KB (1024 bytes), el cliente puede reanudarla de la siguiente manera:
If-Range: file.ext_1234_1234567890
Range: bytes=1024-
Que debería devolver esta respuesta con los bytes apropiados en el cuerpo:
Accept-Ranges: bytes
ETag: file.ext_1234_1234567890
Content-Range: bytes 1024-1233/1234