Content-Type वैलिडेटर

सर्वर सहायता वेब

Content-Type हेडर (type, subtype, charset, boundary) पार्स करें, उसे IANA मीडिया टाइप से मिलाएँ, और चाहें तो कोई सार्वजनिक URL fetch करके पुष्टि करें कि बॉडी मेल खाती है (JSON जो पार्स हो, HTML जो HTML जैसा दिखे, आदि)।

गोपनीयता: जहाँ संभव हो प्रोसेसिंग आपके ब्राउज़र में होती है। नेटवर्क जाँच मुत्क़न बैकएंड के माध्यम से की जाती है और संग्रहीत नहीं की जाती।
टूल लोड हो रहा है…

MIME टाइप क्या है?

MIME टाइप (मीडिया टाइप) जैसे application/json, text/html या image/png Content-Type हेडर में रिसीवर को बताता है कि बॉडी में किस तरह के बाइट हैं। इसे सही रखना पार्सिंग, कैशिंग और सुरक्षा के लिए ज़रूरी है: text/html लेबल वाला JSON रिस्पॉन्स ब्राउज़र रेंडर कर सकता है, और गलत लेबल वाला अपलोड दिखाए जाने के बजाय चल सकता है।

Content-Type वैलिडेटर कैसे इस्तेमाल करें

  1. Content-Type वैल्यू पेस्ट करें, चाहें तो तुलना के लिए बॉडी भी दें, और Validate दबाएँ।
  2. या असली हेडर और बॉडी लाने के लिए कोई सार्वजनिक URL डालें।
  3. पार्स किए हुए फ़ील्ड, पैरामीटर तालिका और समस्याएँ पढ़ें; बॉडी जाँच बताती है कि पेलोड घोषणा से मेल खाता है या नहीं।

Content-Type वैलिडेटर की खूबियाँ

  • type, subtype, संरचित suffix (+json, +xml) और कोट वाली वैल्यू सहित सारे पैरामीटर पार्स करता है
  • top-level type को IANA रजिस्ट्री से और पूरे type को 200 प्रविष्टियों वाली मीडिया टाइप तालिका से जाँचता है
  • charset की समझदारी भरी जाँच (text टाइप में न होना, JSON में ग़ैर-ज़रूरी होना, ग़लत लिखा utf8) और multipart boundary की जाँच
  • बॉडी की पहचान: पार्स होने वाला JSON, HTML/XML मार्कअप, फ़ॉर्म बॉडी, JavaScript, CSS, बाइनरी — घोषित परिवार से तुलना करके
  • असली रिस्पॉन्स हेडर और बॉडी जाँचने के लिए रिले से किसी सार्वजनिक URL को fetch करने का विकल्प
  • अप्रचलित टाइप (application/javascript, text/xml, text/json) पर सलाह

Content-Type वैलिडेटर का उदाहरण

HTML घोषित किया गया JSON रिस्पॉन्स

इनपुट:

Content-Type: text/html; charset=utf-8
Body: {"ok":true}

आउटपुट:

Media type: text/html · Charset: utf-8 · Body family: html
Body check: detected json — No, the body does not look like the declared type.
Warning: Declared text/html but the body looks like json.

Content-Type वैलिडेटर के बारे में अक्सर पूछे जाने वाले सवाल

क्या application/json के साथ charset=utf-8 ज़रूरी है?

नहीं। RFC 8259 के अनुसार JSON हमेशा UTF-8 है और charset पैरामीटर का कोई असर नहीं होता; टूल इसे ग़ैर-ज़रूरी बता देता है। text टाइप (text/html, text/plain, text/css) में charset हमेशा घोषित करना चाहिए।

बॉडी जाँच क्या करती है?

वह बॉडी को उसी तरह पहचानती है जैसे ब्राउज़र करता है: क्या यह JSON के रूप में पार्स होती है, HTML doctype या टैग से शुरू होती है, XML घोषणा है, फ़ॉर्म बॉडी जैसी लगती है, या इसमें बाइनरी बाइट हैं? पहचाने गए परिवार की तुलना घोषित मीडिया टाइप से की जाती है।

URL डालने पर क्या होता है?

रिले उस सार्वजनिक URL को fetch करता है (रीडायरेक्ट का पीछा करते हुए), उसका Content-Type हेडर तथा बॉडी पढ़ता है और दोनों की जाँच करता है। कुछ भी संग्रहित नहीं होता। लोकल या निजी पते fetch नहीं किए जा सकते।

टूल text/javascript बनाम application/javascript को चिह्नित क्यों करता है?

RFC 9239 (2022) ने text/javascript को इकलौता सुझाया गया टाइप बनाया और application/javascript को अप्रचलित घोषित किया। ब्राउज़र दोनों स्वीकार करते हैं, पर नई सेवाओं को text/javascript इस्तेमाल करना चाहिए।

तकनीकी नोट्स

पैरामीटर पार्सिंग RFC 9110 §8.3 का पालन करती है (नाम case-insensitive, वैल्यू वैकल्पिक रूप से quoted-string, कोट के अंदर के सेमीकोलन सुरक्षित)। बॉडी पहचान पहले 2 KB पढ़ती है और MIME Sniffing Standard जैसी सावधान heuristics लगाती है; कंटेंट कभी चलाया नहीं जाता।

संदर्भ

  • RFC 6838: Media Type Specifications and Registration ProceduresIETF · 2013application/json जैसे मीडिया (MIME) टाइप कैसे बनते, रजिस्टर होते और Content-Type में इस्तेमाल होते हैं।
  • MIME types (IANA media types) — MDNMDN Web Docs (Mozilla)ब्राउज़र Content-Type कैसे इस्तेमाल करते हैं, आम मीडिया टाइप और स्निफ़िंग खतरनाक क्यों है।
  • RFC 7578: Returning Values from Forms: multipart/form-dataIETF · 2015फ़ाइल अपलोड और मिश्रित फ़ॉर्म सबमिशन के लिए इस्तेमाल होने वाली multipart/form-data एन्कोडिंग।