Content-Type वैलिडेटर कैसे इस्तेमाल करें
- Content-Type वैल्यू पेस्ट करें, चाहें तो तुलना के लिए बॉडी भी दें, और Validate दबाएँ।
- या असली हेडर और बॉडी लाने के लिए कोई सार्वजनिक URL डालें।
- पार्स किए हुए फ़ील्ड, पैरामीटर तालिका और समस्याएँ पढ़ें; बॉडी जाँच बताती है कि पेलोड घोषणा से मेल खाता है या नहीं।
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 लगाती है; कंटेंट कभी चलाया नहीं जाता।