Domanda

Vorrei creare una risposta HTTP, usando multipart / mixed, ma non sono sicuro di quali browser la supportino; e se è conveniente come sembra, dal punto di vista del cliente. Ad essere sincero, non ho bisogno specificamente di quel tipo di contenuto. Voglio solo trasmettere più di un file nella stessa risposta; forse c'è un altro tipo di contenuto più usato.

È stato utile?

Soluzione

L'ho provato, con un server fatto in casa e una risposta semplice. Non sono sicuro che la risposta sia ben formata perché nessun browser la comprende al 100%. Ma ecco i risultati:

  • Firefox 67.0.1 (64 bit) : esegue il rendering solo dell'ultima parte, gli altri vengono ignorati.
  • IE 11.503 : salva tutto il contenuto in un singolo file (compresi i confini), non viene visualizzato nulla.
  • Chrome maggio 2019 : salva tutto il contenuto in un singolo file, non viene visualizzato nulla.
  • Safari 4 : salva tutto il contenuto in un singolo file, non viene visualizzato nulla.
  • Opera 10.10 : qualcosa di strano. Inizia a rendere la prima parte come semplice / testo, quindi cancella tutto. La barra di avanzamento del caricamento si blocca sul 31%.

Ecco la risposta completa, se qualcuno trova qualche errore, per favore dimmelo e ci riproverò:

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--

Altri suggerimenti

Nella mia esperienza, le risposte multipart funzionano in Firefox ma non in Internet Explorer. Questo è successo 2 anni fa, utilizzando i browser dell'epoca.

Ho avuto risposte multiparte HTTP funzionanti per un flusso di immagini JPEG. Ad esempio, le telecamere IP Axis utilizzano per il loro flusso Motion JPEG per Firefox. Per Internet Explorer, Axis richiede l'uso di un plug-in.

Se il supporto solo per Firefox soddisfa i tuoi requisiti, ti consiglio di impostare l'intestazione della lunghezza del contenuto in ciascuna parte della risposta in più parti. Potrebbe essere utile rendere identica la stringa di limite nell'intestazione HTTP originale e la risposta multiparte (il carattere "-" manca nell'intestazione HTTP).

Due idee:

  1. Formattazione: penso che "multipart" dovrebbe essere in lettere minuscole e non credo sia previsto un punto e virgola alla fine dell'intestazione del tipo di contenuto (anche se è dubbio che farà la differenza, è possibile che possa).
  2. Hai provato a sostituire la modalità? Basta usare: Tipo di contenuto: multipart / x-mixed-replace - tutto il resto dovrebbe rimanere lo stesso.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top