इंटरनेट पर उपयोग किए जाने वाले प्रत्येक संसाधन का एक मीडिया प्रकार होता है, जिसे MIME प्रकार के रूप में भी जाना जाता है, जो बहुउद्देशीय इंटरनेट मेल एक्सटेंशन के लिए है। सर्वर और क्लाइंट के बीच लेनदेन के लिए यह जानकारी आवश्यक है।
ब्राउजर को मीडिया प्रकार के संसाधनों को जानने की जरूरत है ताकि वह उन्हें ठीक से संभाल सके।
वही सर्वर के लिए जाता है। इसे सटीक पार्सिंग और प्रोसेसिंग के लिए भेजे गए संसाधनों के प्रकार को जानने की जरूरत है।
सामग्री-प्रकार कहां घोषित किया गया है?
किसी भी संसाधन का मीडिया प्रकार Content-Type
. में घोषित किया गया है अनुरोध शीर्षलेख की संपत्ति (क्लाइंट पर, सर्वर से अनुरोध करते समय) या प्रतिक्रिया शीर्षलेख में (सर्वर पर, प्रतिक्रिया भेजते समय)।
संसाधन के सामग्री प्रकार को स्पष्ट रूप से घोषित किए बिना, क्लाइंट स्वचालित रूप से प्रकार का पता लगाने का प्रयास कर सकता है, लेकिन परिणाम सटीक नहीं हो सकता है। यही कारण है कि इसे स्पष्ट रूप से घोषित करना महत्वपूर्ण है।
मीडिया प्रकार
मीडिया प्रकार विभिन्न रूपों में मौजूद हैं। उन्हें विभिन्न समूहों में वर्गीकृत किया गया है:
- आवेदन
- ऑडियो
- फ़ॉन्ट
- उदाहरण
- छवि
- संदेश
- मॉडल
- मल्टीपार्ट
- पाठ
- और वीडियो
इन श्रेणियों के भी अपने प्रकार हैं। उदाहरण के लिए, application/json
application
. के अंतर्गत एक प्रकार है और text/html
text
. के अंतर्गत एक प्रकार है ।
आप IANA (एक निकाय जो इंटरनेट पर कुछ प्रमुख तत्वों का समन्वय करता है) मीडिया प्रकारों में मीडिया प्रकारों की पूरी सूची पा सकते हैं।
ये सभी प्रकार विभिन्न प्रकार के डेटा को कवर करते हैं जैसे टेक्स्ट, ऑडियो, इमेज, HTML, और कई अन्य प्रकार जो इंटरनेट पर उपयोग किए जाते हैं।
ब्राउज़र को संसाधन के मीडिया प्रकार को जानना आवश्यक है
जैसा कि मैंने ऊपर उल्लेख किया है, ब्राउज़र को यह जानने की जरूरत है कि उसे किस प्रकार की सामग्री प्राप्त होती है। इसे स्पष्ट करने के लिए यहां एक उदाहरण दिया गया है।
निम्नलिखित कोड एक नोड सर्वर है जो एक HTML फ़ाइल परोसता है:
const http = require("http");
const fs = require("fs");
const path = require("path");
const server = http.createServer(function (req, res) {
const filePath = path.join(__dirname, "index.html");
var stat = fs.statSync(filePath);
res.writeHead(200, {
"Content-Type": "text/css",
"Content-Length": stat.size,
});
const readStream = fs.createReadStream(filePath);
readStream.pipe(res);
});
server.listen(5000);
console.log("Node.js web server at port 5000 is running..");
कोड की बारीकियों के बारे में चिंता न करें। आप केवल index.htm
. के बारे में चिंतित हैं फ़ाइल हम परोस रहे हैं और वह Content-Type
है text/css
।
यहां index.html
की सामग्री दी गई है :
<h1>Homepage</h1>
बेशक, एक HTML दस्तावेज़ एक CSS फ़ाइल से अलग है। यह रहा localhost:5000
पर परिणाम जब सर्वर शुरू होता है:
आप DevTools के नेटवर्क टैब में हेडर की जांच करके प्राप्त प्रतिक्रिया की पुष्टि भी कर सकते हैं।
क्रोम ब्राउज़र पर यह परिणाम है:
ब्राउज़र को सामग्री एक सीएसएस प्रकार के रूप में मिली, इसलिए, उसने इसे सीएसएस के रूप में मानने की कोशिश की।
साथ ही, ध्यान दें कि ब्राउज़र द्वारा प्राप्त सामग्री के प्रकार का पूरा ज्ञान सुरक्षा कमजोरियों को भी कम करता है क्योंकि ब्राउज़र उस डेटा के लिए सुरक्षा मानकों को जानता है।
अब जब आप MIME प्रकारों की अवधारणा और उनके महत्व को समझ गए हैं, तो चलिए JSON पर चलते हैं।
JSON के लिए सही सामग्री-प्रकार
JSON को उचित रूप से उपयोग करने के लिए ब्राउज़र द्वारा सही ढंग से व्याख्या की जानी चाहिए। text/plain
आमतौर पर JSON के लिए उपयोग किया जाता था, लेकिन IANA के अनुसार, JSON के लिए आधिकारिक MIME प्रकार application/json
है ।
इसका मतलब है कि जब आप सर्वर पर JSON भेज रहे हैं या सर्वर से JSON प्राप्त कर रहे हैं, तो आपको हमेशा Content-Type
घोषित करना चाहिए हैडर के रूप में application/json
क्योंकि यही वह मानक है जिसे क्लाइंट और सर्वर समझते हैं।
निष्कर्ष
जैसा कि ऊपर बताया गया है, सर्वर (ब्राउज़र की तरह) को POST अनुरोध में, इसे भेजे गए डेटा के प्रकार को जानने की जरूरत है। यही कारण है forms
फाइलों के साथ आमतौर पर enctype
. होते हैं multipart/form-data
. के मान वाली विशेषता ।
इस तरह अनुरोध को एन्कोड किए बिना, POST अनुरोध काम नहीं करेगा। साथ ही, एक बार जब सर्वर को पता चल जाता है कि उसे किस प्रकार का डेटा मिला है, तो वह एन्कोडेड डेटा को पार्स करना जानता है।
इस लेख में, हमने देखा कि MIME प्रकार क्या हैं और उनका उद्देश्य क्या है। साथ ही, हमने JSON के लिए आधिकारिक सामग्री प्रकार को देखा। मुझे आशा है कि अब आप जान गए होंगे कि इंटरनेट पर उपयोग किए जाने पर संसाधन प्रकारों को घोषित करना क्यों महत्वपूर्ण है।