我想創建一個使用multipart/mixed的HTTP響應,但我不確定哪些瀏覽器支持它;從客戶的角度來看,如果它聽起來很方便。 說實話,我並不需要專門的內容類型。我只想在同一個響應中傳輸多個文件;也許還有另一種內容類型被使用。瀏覽器對多部分響應的支持
回答
我測試過它,有一個自制的服務器和一個簡單的響應。不確定響應是否格式良好,因爲沒有瀏覽器100%確定。但這裏的結果:
- 火狐3.5:呈現只有最後一部分,其它的被忽略。
- IE 8:將所有內容顯示爲文本/純文本,包括邊界。
- Chrome 3:將所有內容保存在單個文件中,不會呈現任何內容。
- Safari 4:將所有內容保存在單個文件中,不會呈現任何內容。
- 歌劇10.10:奇怪的東西。開始將第一部分渲染爲純文本/文本,然後清除所有內容。加載進度條掛在31%。
下面是完整的反應,如有任何錯誤,請告訴我,我會再試一次:
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--
我不確定你哪裏錯了,但我在2006年在Firefox中實現它,它很好地工作。 – kybernetikos 2012-06-14 11:11:05
如果您有任何示例,請提交:)謝謝! – 2012-06-14 14:27:02
爲節點:ff很好地工作,鉻似乎是一個框架落後: '''var boundary =「XXMIMEBOUNDARY」; var section = 0;函數writeSection(res){var a =(section ++);的console.log( 「寫」,一個); res.write(「Content-type:text/plain \ n \ n」); res.write(「Section」+ a); res.write(「 - 」+ boundary +「\ n」);};請求('http')。createServer(function(req,res){console.log('received request'); res.writeHead(200,{「Content-type」:'multipart/x-mixed-replace; boundary = 「'+ border +'」'}); writeSection(res); setInterval(function(){writeSection(res);},2500);})。listen(8080);''' – kybernetikos 2012-06-22 08:51:53
以我的經驗,多響應於Firefox,而不是在Internet Explorer中。這是2年前,使用當時的瀏覽器。
我有HTTP多部分響應工作的JPEG圖像流。例如,Axis IP攝像機使用Firefox的運動JPEG流。對於Internet Explorer,Axis需要使用插件。
如果僅支持Firefox的支持符合您的要求,那麼我建議在多部分響應的每個部分中設置內容長度標題。這可能有助於使原始HTTP標頭和多部分響應(' - '在HTTP標頭中缺失)中的邊界字符串相同。
兩個想法:
- 格式:我覺得「多」應該是在較低的情況下,我不認爲一個分號預計將在Content-type頭結束(雖然它是值得懷疑的它會有所作爲,它可能會)。
- 你試過替換模式嗎?只需使用:
Content-type: multipart/x-mixed-replace
- 其他一切應該保持不變。
'multipart/mixed'和'multipart/x-mixed-replace'。任何瀏覽器都不可能支持'multipart/mixed',因爲它不是真正的服務器所使用的東西。 'multipart/x-mixed-replaced'有一些支持,因爲有些服務器確實將它用於服務器端推送,就像流媒體一樣。通常用於HTTP的唯一其他'multipart/...'類型是'multipart/form-data'和'multipart/byteranges'。 – 2014-11-26 10:27:29
- 1. 瀏覽器支持
- 2. 的ClickOnce多瀏覽器支持
- 3. 瀏覽器支持WebDriver還是WebDriver支持瀏覽器
- 4. 對JavaScript版本的瀏覽器支持
- 5. 移動瀏覽器對CSS3的支持
- 6. 瀏覽器對eTags的支持
- 7. 檢測瀏覽器對RFC5987的支持
- 8. 瀏覽器對PNG的支持
- 9. 對角材料的瀏覽器支持
- 10. 是否所有的瀏覽器都支持excel響應?
- 11. simpleHttp導致'不受支持的瀏覽器響應?'
- 12. 無頭瀏覽器,支持java的全部javascript支持
- 13. Android瀏覽器支持多少HTML5?
- 14. window.devicePixelRatio瀏覽器支持
- 15. 瀏覽器支持sencha touch
- 16. Kurento瀏覽器/ webRTC支持
- 17. Ember.js瀏覽器支持?
- 18. document.fileSize瀏覽器支持
- 19. 瀏覽器字體支持
- 20. Robot Framework瀏覽器支持
- 21. Android iFrame瀏覽器支持
- 22. Scaja.js瀏覽器支持
- 23. XML跨瀏覽器支持
- 24. 邊緣瀏覽器支持
- 25. ngAria支持Safari瀏覽器
- 26. 跨瀏覽器支持jQuery
- 27. 瀏覽器支持「e.target.files」
- 28. Gecko支持的瀏覽器和Webkit支持的瀏覽器有什麼區別?
- 29. 瀏覽器對CSS3和供應商前綴的支持
- 30. 瀏覽器不處理如Firefox分塊響應,Safari瀏覽器
我找不到任何谷歌良好的信息,所以你必須對它進行測試 - 建立被髮送的多 一個簡單的頁面 - 在不同的瀏覽器 測試 - 將結果在這裏:)(此頁是Google在搜索時的第二個結果) – 2009-11-27 20:32:41
如果文件彼此相關,例如根文檔的資源,請嘗試'multipart/related'。 – 2014-11-26 10:27:11