El servicio de bytes (otros nombres: solicitudes de rango ; servicio de rango de bytes ; [ 1 ] Página bajo demanda [ 2 ] ) es el proceso introducido en el protocolo HTTP 1.1 para enviar solo una parte de un mensaje de un servidor a un cliente. El servicio de bytes comienza cuando un servidor HTTP anuncia su disposición a atender solicitudes parciales mediante el encabezado de respuesta Accept-Ranges . Un cliente solicita entonces una parte específica de un archivo al servidor mediante el encabezado de solicitud Range . Si el rango es válido, el servidor lo envía al cliente con un código de estado 206 Partial Content y un encabezado Content-Range que indica el rango enviado. Si el rango no es válido, el servidor responde con un código de estado 416 Requested Range Not Satisfiable . [ 3 ]
Los clientes que solicitan el servicio de bytes pueden hacerlo en casos en los que un archivo grande se ha entregado solo parcialmente y se necesita una porción limitada del archivo en un rango particular. El servicio de bytes es, por lo tanto, un método de optimización del ancho de banda . [ 4 ] En el estándar HTTP/1.0, los clientes solo podían solicitar un documento completo. Al permitir el servicio de bytes, los clientes pueden optar por solicitar cualquier porción del recurso. Una ventaja de esta capacidad es que cuando se solicita un archivo multimedia grande, y ese archivo multimedia está formateado correctamente, el cliente puede solicitar solo las porciones del archivo que sabe que son de interés. Esto es esencial para servir archivos de video; si un servidor carece de esta función, los videos alojados en ese servidor pueden no ser reproducibles hasta que el cliente haya descargado el archivo completo, y la búsqueda dentro del archivo puede estar deshabilitada.
De manera similar, los archivos PDF se pueden optimizar para la entrega de bytes, lo que permite visualizar archivos grandes instantáneamente en el navegador solicitando únicamente los datos necesarios para renderizar la página actual. [ 5 ] Adobe ha facilitado durante mucho tiempo el uso de la entrega de bytes mediante una función en Adobe Acrobat que guarda archivos PDF con una estructura opcional de "Vista web rápida" optimizada para la descarga página por página. [ 5 ]
El servicio de bytes también puede ser utilizado por clientes con múltiples interfaces de red para descargar simultáneamente un recurso a través de múltiples interfaces de red. [ 6 ] Para lograr este tipo de agregación de enlaces en la capa de aplicación , se establecen múltiples sesiones HTTP y los segmentos lógicos de archivos se descargan de forma colaborativa desde el servidor y se vuelven a ensamblar en el cliente. Esto permite la utilización completa de varias rutas de extremo a extremo y, por lo tanto, conduce a una mayor velocidad de descarga.
El acceso por bytes también se utiliza para acceder a subconjuntos relativamente pequeños de grandes conjuntos de datos, como los archivos de datos GRIB multivariados producidos y compartidos por los modelos de predicción numérica del tiempo . Software como WGRIB2 puede identificar y seleccionar rangos de bytes individuales de los datos de pronóstico del tiempo proporcionados por sistemas como la NOAA .
El uso de la codificación de transferencia por fragmentos (Chunked Transfer-Encoding) no es el envío de bytes, sino un método en el que un servidor HTTP/1.1 envía el recurso completo, pero en varias porciones separadas (o fragmentos) de datos. [ 7 ] Se usa a menudo cuando un servidor no sabe con exactitud cuántos datos habrá en la respuesta total, lo que le permite comenzar a enviar datos al cliente de inmediato sin tener que almacenar la respuesta en búfer y determinar la longitud exacta antes de comenzar a enviarla. Esto mejora la latencia y reduce los requisitos de memoria, al tiempo que conserva la capacidad de reutilizar la conexión una vez completada la respuesta. El envío de bytes y la división en fragmentos son compatibles y pueden usarse indistintamente. Las versiones posteriores del protocolo HTTP siguen admitiendo el envío de bytes, [ 8 ] aunque el uso de la codificación de transferencia por fragmentos ha sido reemplazado por métodos alternativos.
Véase también
Referencias
- ↑ Semana Apache. HTTP/1.1
- ↑ Byte Serving: definición de byte serving en la Enciclopedia en línea gratuita
- ↑ RFC 7233: Protocolo de transferencia de hipertexto (HTTP/1.1): Solicitudes de rango
- ↑ Diferencias clave entre HTTP/1.0 y HTTP/1.1: "Un ejemplo típico es cuando un servidor envía un recurso completo (grande) mientras que el cliente solo necesita una pequeña parte. En HTTP/1.0 no existía la posibilidad de solicitar objetos parciales... Las solicitudes de rango de HTTP/1.1 permiten que un cliente solicite porciones de un recurso."
- 1 2 Habilitar la vista web rápida en un PDF
- ↑ Mejora de la reproducción de vídeo bajo demanda en múltiples redes de acceso heterogéneas por D. Kaspar, KR Evensen, PE Engelstad, AF Hansen, P. Halvorsen y C. Griwodz. En: IEEE Consumer Communications and Networking Conference (CCNC), ISBN 978-1-4244-5176-0, 2010
- ↑ "HTTP Chunking" . Archivado del original el 8 de febrero de 2012.
- ↑ RFC 7540 Sección 8
- navegadores web
- Protocolo de transferencia de hipertexto