Pergunta

Eu gostaria de criar uma resposta HTTP, usando multipart / misto, mas não tenho certeza de qual navegadores apoiá-lo; e se ele é tão conveniente quanto parece, do ponto de vista do cliente. Para ser honesto, eu não preciso especificamente esse tipo de conteúdo. Eu só quero transmitir mais de um arquivo na mesma resposta; talvez haja outro tipo de conteúdo mais usado.

Foi útil?

Solução

Eu testei-o, com um servidor de fabricação caseira e uma resposta simples. Não tenho certeza se a resposta está bem formado, porque nenhum navegador entende 100% OK. Mas aqui estão os resultados:

  • Firefox 67.0.1 (64 bits) :. Renders apenas a última parte, outros são ignorados
  • IE 11,503 :. Salva todo o conteúdo em um único arquivo (incluindo as fronteiras), nada é processado
  • Chrome maio 2019 :. Salva todo o conteúdo em um único arquivo, nada é processado
  • Safari 4 :. Salva todo o conteúdo em um único arquivo, nada é processado
  • Opera 10.10 : Algo estranho. Inicia tornando a primeira parte tão simples / texto, e, em seguida, limpa tudo. Os trava barra de carregamento de progresso em 31%.

Aqui está a resposta completa, se alguém encontrar qualquer erro, por favor me diga e eu vou tentar novamente:

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

Outras dicas

Em minha experiência, as respostas de várias funciona no Firefox, mas não no Internet Explorer. Isso foi há 2 anos, usando os navegadores da época.

Eu tive HTTP de várias respostas que trabalham para um fluxo de imagens JPEG. Por exemplo, câmeras IP Axis usar para seu movimento fluxo JPEG para o Firefox. Para o Internet Explorer, Axis exigem o uso de um plugin.

Se o Firefox só de apoio atenda às suas necessidades, então eu recomendo definindo o cabeçalho de comprimento de conteúdo em cada parte da resposta multi-parte. Pode ajudar a fazer a seqüência de fronteira idêntica no original cabeçalho HTTP ea resposta multi-parte (o '-' está faltando no cabeçalho HTTP)

.

Duas ideias:

  1. A formatação: Eu acho que "multipart" deve ser em letras minúsculas, e eu não acho que um ponto e vírgula é esperado no final do cabeçalho do tipo de conteúdo (embora seja duvidoso que ele vai fazer a diferença, é possível que ele força).
  2. Você já tentou modo de substituição? Basta usar:. Content-type: multipart/x-mixed-replace - tudo o resto deve permanecer o mesmo
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top