¿Es posible mostrarme una sesión http de ejemplo con solicitudes de rango? Quiero decir, ¿cuáles serían los encabezados de solicitud y respuesta?Muestra de solicitud de rango http sesión
Respuesta
El siguiente intercambio se realiza entre Chrome y un servidor web estático, recuperando un video MP4.
Solicitud inicial - para el video. Tenga en cuenta la cabecera Accept-Ranges
respuesta para indicar que el servidor tiene soporte cabecera rango:
GET /BigBuckBunny_320x180.mp4
Cache-Control: max-age=0
Connection: keep-alive
Accept-Language: en-GB,en-US,en
Host: localhost:8080
Range:
Accept: text/html,application/xhtml+xml,application/xml,*/*
User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.7 ...
Accept-Encoding: gzip,deflate,sdch
Accept-Charset: ISO-8859-1,utf-8,*
200 OK
Content-Type: video/mp4
Connection: keep-alive
Last-Modified: Wed,14 Dec 2011 15:50:59 GMT
ETag: A023EF02BD589BC472A2D6774EAE3C58
Transfer-Encoding:
Content-Length: 64657027
Accept-Ranges: bytes
Server: Brisket/1.0.1
Date: Wed,14 Dec 2011 16:11:24 GMT
encabezado Rango en respuesta anterior detectada - solicitud posterior con un rango de composición abierta para confirmar el apoyo. Respuesta devuelve un 206 de estado y Content-Range
cabecera para indicar los bytes presentes en el cuerpo de la respuesta: (metadatos probablemente para capturar detrás)
GET /BigBuckBunny_320x180.mp4
Connection: keep-alive
Accept-Language: en-GB,en-US,en
Host: localhost:8080
Range: bytes=0-
Accept: */*
User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.7 ...
Referer: http://localhost:8080/BigBuckBunny_320x180.mp4
Accept-Encoding: identity
Accept-Charset: ISO-8859-1,utf-8,*
206 Partial Content
Content-Type: video/mp4
Connection: keep-alive
Last-Modified: Wed,14 Dec 2011 15:50:59 GMT
ETag: A023EF02BD589BC472A2D6774EAE3C58
Transfer-Encoding:
Content-Length: 64657027
Accept-Ranges: bytes
Server: Brisket/1.0.1
Date: Wed,14 Dec 2011 16:11:25 GMT
Content-Range: bytes 0-64657026/64657027
solicitud rango después de la captura del final del archivo:
GET /BigBuckBunny_320x180.mp4
Connection: keep-alive
Accept-Language: en-GB,en-US,en
Host: localhost:8080
Range: bytes=64312833-64657026
Accept: */*
If-Range: A023EF02BD589BC472A2D6774EAE3C58
User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.7 ...
Referer: http://localhost:8080/BigBuckBunny_320x180.mp4
Accept-Encoding: identity
Accept-Charset: ISO-8859-1,utf-8,*
206 Partial Content
Content-Type: video/mp4
Connection: keep-alive
Last-Modified: Wed,14 Dec 2011 15:50:59 GMT
ETag: A023EF02BD589BC472A2D6774EAE3C58
Transfer-Encoding:
Content-Length: 344194
Accept-Ranges: bytes
Server: Brisket/1.0.1
Date: Wed,14 Dec 2011 16:11:25 GMT
Content-Range: bytes 64312833-64657026/64657027
El usuario hace clic en la barra de progreso del video más allá del rango descargado; se emite una solicitud de rango para comenzar a jugar desde la posición seleccionada:
GET /BigBuckBunny_320x180.mp4
Connection: keep-alive
Accept-Language: en-GB,en-US,en
Host: localhost:8080
Range: bytes=1073152-64313343
Accept: */*
If-Range: A023EF02BD589BC472A2D6774EAE3C58
User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.7 ...
Referer: http://localhost:8080/BigBuckBunny_320x180.mp4
Accept-Encoding: identity
Accept-Charset: ISO-8859-1,utf-8,*
206 Partial Content
Content-Type: video/mp4
Connection: keep-alive
Last-Modified: Wed,14 Dec 2011 15:50:59 GMT
ETag: A023EF02BD589BC472A2D6774EAE3C58
Transfer-Encoding:
Content-Length: 63240192
Accept-Ranges: bytes
Server: Brisket/1.0.1
Date: Wed,14 Dec 2011 16:11:25 GMT
Content-Range: bytes 1073152-64313343/64657027
El encabezado de codificación de transferencia en blanco es un artefacto de la forma en que se capturó la comunicación HTTP o existe un servidor HTTP real generando valores en blanco para este encabezado? – swl10
En el primer caso, parece que el servidor está devolviendo 64657027 bytes de contenido. Entonces, ¿qué está pasando? ¿El cliente está desechando ese contenido y luego publica una solicitud de rango para las partes realmente desea? O el servidor no devuelve ningún contenido porque algo en el mensaje del cliente dice que no haga eso. Si es así, ¿qué es? – Morrie
@Morrie: parece que el servidor, sabiendo que admite solicitudes de rango, le dice al cliente "Acepto las solicitudes de rango" a través del encabezado 'Accept-Ranges: bytes', pero también envía la longitud del contenido del recurso para que el el cliente puede hacer solicitudes de rango con un límite superior. Nada en el mensaje del cliente dice que haga esto, que yo sepa, el servidor puede elegir responder "aquí está el recurso completo" o "acepto solicitudes de rango", que nuevamente es la existencia del encabezado 'Aceptar rangos' . Esa es mi comprensión de todos modos. –
- 1. HTTP rango encabezado
- 2. Indy 10 Http Server muestra
- 3. ¿Asegurando partes de una solicitud HTTP?
- 4. Proceso de solicitud HTTP prima
- 5. Node.js http solicitud pipelining
- 6. solicitud HTTP DELETE
- 7. para una solicitud HTTP
- 8. Haciendo solicitud HTTP POST
- 9. Git: solicitud HTTP fallida
- 10. Solicitud HTTP en Ubuntu
- 11. ¿Cómo utilizar el encabezado de rango HTTP con un especificador de rango distinto de los bytes?
- 12. Throttle solicitud HTTP en Java Servlet
- 13. PHP: HTTP Basic - Cerrar sesión
- 14. Cola de solicitud de sesión de ASP.net
- 15. ¿La URL de solicitud HTTP no forma parte del encabezado de solicitud HTTP?
- 16. Express.js Tiempo de espera de solicitud HTTP
- 17. HTTP, 408 Tiempo de espera de solicitud
- 18. Suplantar la dirección IP de origen de una solicitud HTTP
- 19. Solicitud de muestra - Amazon S3/Indy/Delphi
- 20. Android HTTP preguntas de inicio de sesión
- 21. Leer solicitud Http en matriz de bytes
- 22. solicitud HTTP POST prueba de Java Junit
- 23. longitud máxima de la solicitud HTTP GET?
- 24. Cabeceras HTTP de solicitud personalizada en HTML
- 25. monitor solicitud HTTP de un navegador no
- 26. Solicitud HTTP de iOS en segundo plano
- 27. solicitud HTTP node.js utilizando 'request' de mikeal
- 28. Http Opción Método con solicitud de Javascript
- 29. Enviando solicitud http en node.js
- 30. HTTPS a HTTP solicitud JSONP
Hace unos meses el nuevo versión del estándar HTTP/1.1 fue publicada. Tiene un RFC especial para solicitudes de rango, esto es mucho más legible que la especificación anterior, incluyendo ejemplos para muchos elementos: https://tools.ietf.org/html/rfc7233 – Thirler