سؤال

أرغب في إنشاء استجابة HTTP، باستخدام أجزاء متعددة/مختلطة، لكنني لست متأكدًا من المتصفحات التي تدعمها؛وإذا كان الأمر مناسبًا كما يبدو، من وجهة نظر العميل.لأكون صادقًا، لا أحتاج إلى هذا النوع من المحتوى على وجه التحديد.أريد فقط إرسال أكثر من ملف في نفس الاستجابة؛ربما يكون هناك نوع محتوى آخر أكثر استخدامًا.

هل كانت مفيدة؟

المحلول

لقد قمت باختباره باستخدام خادم محلي الصنع واستجابة بسيطة.لست متأكدًا مما إذا كانت الاستجابة جيدة الإعداد لأنه لا يوجد متصفح يفهمها بشكل جيد بنسبة 100%.ولكن هنا النتائج:

  • فايرفوكس 67.0.1 (64 بت):يعرض الجزء الأخير فقط، ويتم تجاهل الأجزاء الأخرى.
  • إي 11.503:يحفظ كل المحتوى في ملف واحد (بما في ذلك الحدود)، ولا يتم عرض أي شيء.
  • كروم مايو 2019:يحفظ كل المحتوى في ملف واحد، ولا يتم عرض أي شيء.
  • سفاري 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--

نصائح أخرى

في تجربتي، وتعمل استجابات متعددة في فايرفوكس ولكن ليس في Internet Explorer. كان هذا قبل 2 سنة، وذلك باستخدام المتصفحات من الوقت.

ولقد كان HTTP استجابات متعددة يعمل لحساب تيار من الصور JPEG. على سبيل المثال، وكاميرات IP محور تستخدم لمن الحركة JPEG تيار لفايرفوكس. لإنترنت إكسبلورر، محور تتطلب استخدام البرنامج المساعد.

إذا دعم فايرفوكس فقط تلبي الاحتياجات الخاصة بك، ثم أوصى بوضع رأس بطول المحتوى في كل جزء من استجابة متعددة الأجزاء. قد تساعد على جعل سلسلة الحدود متطابقة في رأس HTTP الأصلي واستجابة متعددة الأجزاء. (و'-' مفقود في رأس HTTP)

فكرتان:

  1. التنسيق:أعتقد أن كلمة "متعدد الأجزاء" يجب أن تكون بأحرف صغيرة، ولا أعتقد أنه من المتوقع وجود فاصلة منقوطة في نهاية رأس نوع المحتوى (على الرغم من أنه من المشكوك فيه أنه سيحدث فرقًا، فمن الممكن أن يحدث ذلك).
  2. هل حاولت استبدال الوضع؟مجرد استخدام: Content-type: multipart/x-mixed-replace - كل شيء آخر يجب أن يبقى كما هو.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top