Frage

Ich möchte eine HTTP-Antwort erstellen, unter Verwendung von multipart / mixed, aber ich bin nicht sicher, welche Browser sie unterstützen; und wenn es so bequem, wie es klingt, vom Standpunkt des Kunden aus gesehen. Um ehrlich zu sein, brauche ich nicht speziell diese Art des Inhalts. Ich will einfach nur mehr als eine Datei in der gleichen Antwort senden; vielleicht gibt es einen anderen Inhaltstyp mehr verwendet.

War es hilfreich?

Lösung

Ich habe es getestet, mit einem hausgemachten Server und einer einfachen Antwort. Nicht sicher, ob die Antwort ist wohlgeformt, da kein Browser es 100% OK versteht. Aber hier sind die Ergebnisse:

  • Firefox 67.0.1 (64-bit) :. Renders nur den letzten Teil, alle anderen werden ignoriert
  • IE 11,503 :. Speichert alle Inhalte in einer einzigen Datei (einschließlich der Grenzen), nichts gemacht wird,
  • Chrome Mai 2019 :. Speichert alle Inhalte in einer einzigen Datei, nichts gemacht wird,
  • Safari 4 :. Speichert alle Inhalte in einer einzigen Datei, nichts gemacht wird,
  • Opera 10.10 : Etwas seltsam. Startet Rendern des ersten Teils als plain / text, und dann wird alles gelöscht. Der Ladefortschrittsbalken hängt auf 31%.

Hier ist die vollständige Antwort, wenn jemand einen Fehler findet, bitte sagen Sie mir, und ich werde versuchen Sie es erneut:

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

Andere Tipps

Nach meiner Erfahrung arbeiten mehrteiliger Reaktionen in Firefox aber nicht im Internet Explorer. Das war vor 2 Jahren, den Browser der Zeit verwendet wird.

Ich habe HTTP hat mehrteiliger Reaktionen für einen Strom von JPEG-Bildern arbeiten. Verwenden Sie zum Beispiel Axis-IP-Kameras für ihren Motion-JPEG-Stream für Firefox. Für das Internet Explorer benötigt Achse die Verwendung eines Plug-In.

Wenn Firefox-nur Unterstützung Ihre Anforderungen entspricht, dann empfehle ich in jedem Teil der mehrteiligen Reaktion der Content-Length-Header zu setzen. Es könnte helfen, die Grenze Zeichenfolge identisch in den ursprünglichen HTTP-Header und die mehrteilige Reaktion zu machen. (Die ‚-‘ fehle im HTTP-Header)

Zwei Ideen:

  1. Formatierung: Ich denke, „multipart“ in Kleinbuchstabe sein sollte, und ich glaube nicht, ein Semikolon am Ende der Content-Type-Header zu erwarten ist (obwohl es zweifelhaft ist, dass es einen Unterschied machen, dann ist es möglich, dass es könnte).
  2. Haben Sie versucht Modus ersetzen? Verwenden Sie einfach: Content-type: multipart/x-mixed-replace - alles andere gleich bleiben sollte
  3. .
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top