2009-04-04 23 views

Respuesta

67

Range se usa en la solicitud, para pedir un intervalo particular (o rangos) de bytes. Content-Range se usa en la respuesta, para indicar qué bytes le está dando el servidor (que puede ser diferente al rango que solicitó), así como también cuánto tiempo es el contenido completo (si se conoce).

+7

Lea la respuesta btimby a continuación. –

+2

@BrunoMartinez Si bien puede usar Content-Range en la solicitud, quedó bastante claro a partir de la pregunta que el OP estaba haciendo sobre la descarga de contenido dentro de un rango determinado. Estaba respondiendo según lo que estaba haciendo el OP, no tratando de dar una descripción exhaustiva de cada caso en el que se podría usar Content-Range. –

+3

@BrianCampbell usted es, por supuesto, correcto. Solo quería registrar mis hallazgos por el bien de la posteridad. Edité mi respuesta para asegurarme de que no da la impresión de que tu respuesta sea incorrecta. – btimby

113

En realidad, la respuesta aceptada no está completa. Content-Range no solo se usa en las respuestas. También es legal en las solicitudes que proporcionan un cuerpo de entidad.

Por ejemplo, un HTTP PUT proporciona un cuerpo de entidad, podría proporcionar solo una parte de una entidad. Por lo tanto, la solicitud PUT puede incluir un encabezado Content-Range que indique al servidor donde el cuerpo de la entidad parcial debe fusionarse en la entidad.

Por ejemplo, creemos primero y luego anexar a un archivo a través de HTTP:

Solicitud 1:

PUT /file HTTP/1.1 
Host: server 
Content-Length: 1 

a 

Solicitud 2:

PUT /file HTTP/1.1 
Host: server 
Content-Range: 1-2/* 
Content-Length: 1 

a 

Cómo, vamos a ver el contenido del archivo ...

Pedido 3:

GET /file HTTP/1.1 
Host: server 

HTTP/1.1 200 OK 
Content-Length: 2 

aa 

Esto permite el acceso aleatorio a archivos, tanto LECTURA como ESCRITURA a través de HTTP. Solo quería aclarar, ya que estaba investigando el uso de Content-Range en un cliente WebDAV que estoy desarrollando, por lo que tal vez esta información expandida resulte útil para otra persona.

+6

Content-Range no es legal en las solicitudes. –

+10

Ese comentario es incorrecto. RFC2616 (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.16) no limita el encabezado 'Content-Range' a las solicitudes, sino que lo vincula a un" cuerpo de entidad parcial " . En realidad, es muy común usar la función para facilitar la carga del currículum o la carga fragmentada. – Hank

+1

El comentario de Mark es correcto. Ver: http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-23, sección 4.3.4. – grzes

Cuestiones relacionadas