Servir datos de audio desde un servlet de Java para un control de audio HTML5

Esto puede ser una pregunta de Servlets o una pregunta de HTML5, dependiendo de lo que resulte ser la solución ... :)

Tengo un Servlet (Tomcat) que sirve clips cortos de audio que luego se recogen en un elemento de audio HTML5. El audio se reproduce correctamente, pero en algunos navegadores solo una vez (de modo que intentar "rebobinar" o reproducir el audio no funciona). Sospecho que esto se debe a que mi Servlet no informa que admite solicitudes de rango: me doy cuenta de que, dado un archivo de audio estático en el mismo servidor, Apache agrega el encabezado de respuesta HTTP de "unidad de rango" y la reproducción del archivo funciona de tal manera. casos. Así que supongo que en los navegadores en los que tengo el problema, para reproducir el archivo, el navegador realiza una solicitud de rango de contenido HTTP en lugar de almacenar en búfer el archivo completo o volver a solicitar el archivo completo. (Al menos en Safari, la reproducción del audio servido desde mi Servlet funciona bien: estoy adivinando porque Safari almacena todo el audio).

Así que mis preguntas:

¿Hay alguna forma en HTML para solicitar que el navegador almacene el archivo de audio completo durante la reproducción para permitir las repeticiones en lugar de que el servidor tenga que soportar necesariamente las solicitudes de rango?

si no, ¿alguien tiene experiencia en responder a solicitudes de rango de un Servlet? Supongo que es solo un caso de (a) enviar un código de respuesta de "unidad de rango" en respuesta a la solicitud inicial, y luego (b) vigilar los encabezados de solicitud HTTP relevantes ("¿Rango de contenido?") (Supongo ¿así es como se manejan?) en solicitudes subsiguientes y solo sirven la parte relevante del audio? ¿Hay algún error que deba tener en cuenta?

Respuestas a la pregunta(1)

Su respuesta a la pregunta