La pregunta principal es sobre el uso de los encabezados HTTP, incluidos Range, If-Range, Accept-Ranges y un especificador de rango definido por el usuario.¿Cómo utilizar el encabezado de rango HTTP con un especificador de rango distinto de los bytes?
Aquí hay un ejemplo fabricado para ayudar a ilustrar mi pregunta. Supongamos que tengo una aplicación de estilo Web 2.0 que muestra algún tipo de documentos legibles por humanos. Estos documentos están divididos editorialmente en páginas (similar a los artículos que se ven en los sitios web de noticias). Para este ejemplo, suponga:
- Hay un documento titulado "HTTP Range Question" dividido en tres páginas.
- La página del shell (
/document/shell/http-range-question
) conoce la metainformación sobre el documento, incluido el número de páginas. - La primera página legible del documento se carga durante el evento de carga de página a través de un Ajax GET y se inserta en la página.
- Un control de IU que se parece a [1 2 3 Todo] está en la parte inferior de la página y al hacer clic en un número se mostrará esa página legible (también cargada mediante ajax) y al hacer clic en "Todos" se mostrará documento completo. Asumir estos Sitios en Internet de 1, 2, 3 y todos los casos de uso:
/document/content/http-range-question?page=1
/document/content/http-range-question?page=2
/document/content/http-range-question?page=3
/document/content/http-range-question
ahora a la cuestión. ¿Puedo usar los encabezados del rango HTTP en lugar de la URL (por ejemplo, un parámetro querystring)? Tal vez algo como esto en la solicitud GET /document/content/http-range-question
:
Range: page=1
Parece que la especificación sólo define byte varía según permitida, por lo que incluso si he hecho mis llamadas ajax funcionan con el navegador y el código del servidor, cualquier cosa en el medio podría romper el contrato (por ejemplo, un servidor proxy de almacenamiento en caché).
Range: bytes=0-499
¿Alguna opinión o ejemplos del mundo real de especificadores de rango personalizados?
actualización: Lo que encontrar una pregunta similar sobre la cabecera de la gama (Paging in a Rest Collection), donde se menciona que Dojo JsonRestStore utiliza un valor de encabezado rango personalizado.
Range: items=0-24
posible duplicado de [Paging in a Rest Collection] (http://stackoverflow.com/questions/924472/paging-in-a-rest-collection) – DanMan
@DanMan - Ya había vinculado a esa pregunta similar, pero no todo HTTP es REST y esto hace una pregunta sobre los valores permitidos, no la semántica de REST. Además, la redacción de diferentes títulos de preguntas ayuda a diferentes personas a encontrar sus respuestas. –