Pregunta

Me gustaría crear una respuesta HTTP, utilizando multiparte / mixto, pero no estoy seguro de qué navegadores lo admiten; y si es tan conveniente como parece, desde el punto de vista del cliente. Para ser honesto, no necesito específicamente ese tipo de contenido. Solo quiero transmitir más de un archivo en la misma respuesta; tal vez hay otro tipo de contenido más utilizado.

¿Fue útil?

Solución

Lo he probado, con un servidor casero y una respuesta simple. No estoy seguro si la respuesta está bien formada porque ningún navegador la entiende 100% OK. Pero aquí están los resultados:

  • Firefox 67.0.1 (64 bits) : representa solo la última parte, las demás se ignoran.
  • IE 11.503 : guarda todo el contenido en un solo archivo (incluidos los límites), no se procesa nada.
  • Chrome mayo de 2019 : guarda todo el contenido en un solo archivo, no se procesa nada.
  • Safari 4 : guarda todo el contenido en un solo archivo, no se procesa nada.
  • Opera 10.10 : Algo raro. Comienza a representar la primera parte como texto sin formato y luego borra todo. La barra de progreso de carga se cuelga en un 31%.

Aquí está la respuesta completa, si alguien encuentra algún error, dígame e intentaré nuevamente:

HTTP/1.1 200 OK
Date: Tue, 01 Dec 2009 23:27:30 GMT
Vary: Accept-Encoding,User-Agent
Content-Length: 681
Content-Type: Multipart/mixed; boundary="sample_boundary";

Multipart not supported :(
--sample_boundary
Content-Type: text/css; charset=utf-8
Content-Location: http://localhost:2080/file.css

body
{
 background-color: yellow;
}
--sample_boundary
Content-Type: application/x-javascript; charset=utf-8
Content-Location: http://localhost:2080/file.js

alert("Hello from a javascript!!!");

--sample_boundary
Content-Type: text/html; charset=utf-8
Content-Base: http://localhost:2080/

<html>
<head>
    <link rel="stylesheet" href="http://localhost:2080/file.css">
</head>
<body>
 Hello from a html
    <script type="text/javascript" src="http://localhost:2080/file.js"></script>
</body>
</html>
--sample_boundary--

Otros consejos

En mi experiencia, las respuestas multiparte funcionan en Firefox pero no en Internet Explorer. Esto fue hace 2 años, utilizando los navegadores de la época.

He tenido respuestas multiparte HTTP trabajando para una secuencia de imágenes JPEG. Por ejemplo, las cámaras IP de Axis usan para su flujo de JPEG en movimiento para Firefox. Para Internet Explorer, Axis requiere el uso de un complemento.

Si la compatibilidad solo con Firefox cumple con sus requisitos, le recomiendo configurar el encabezado de longitud de contenido en cada parte de la respuesta de varias partes. Podría ayudar hacer que la cadena límite sea idéntica en el encabezado HTTP original y la respuesta de varias partes (falta el '-' en el encabezado HTTP).

Dos ideas:

  1. Formato: creo que " multiparte " debería estar en minúsculas, y no creo que se espere un punto y coma al final del encabezado Content-type (aunque es dudoso que haga una diferencia, es posible que lo haga).
  2. ¿Has intentado reemplazar el modo? Solo use: Tipo de contenido: multiparte / x-mixed-replace - todo lo demás debería permanecer igual.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top