Computer >> कंप्यूटर ट्यूटोरियल >  >> नेटवर्किंग >> इंटरनेट

JSON रिक्वेस्ट के लिए सही Content-Type हेडर चुनना: एक व्यावहारिक गाइड

इंटरनेट पर उपयोग किए जाने वाले हर संसाधन का एक मीडिया प्रकार होता है, जिसे MIME प्रकार के रूप में भी जाना जाता है जो मल्टीपर्पस इंटरनेट मेल एक्सटेंशन के लिए खड़ा है। यह जानकारी सर्वर और क्लाइंट के बीच लेनदेन के लिए आवश्यक है।

ब्राउज़र को उसके पास भेजे गए संसाधनों के मीडिया प्रकार को जानने की आवश्यकता होती है ताकि वह उन्हें ठीक से संभाल सके।

यही सर्वर के लिए भी लागू होता है। इसे सटीक पार्सिंग और प्रोसेसिंग के लिए भेजे गए संसाधनों के प्रकार को जानने की आवश्यकता होती है।

Content-Type कहां घोषित किया जाता है?

किसी भी संसाधन का मीडिया प्रकार रिक्वेस्ट हेडर के Content-Type गुण में घोषित किया जाता है (क्लाइंट पर, जब सर्वर को रिक्वेस्ट भेजा जाता है) या रिस्पॉन्स हेडर में (सर्वर पर, जब रिस्पॉन्स भेजा जाता है)।

कंटेंट टाइप को स्पष्ट रूप से घोषित किए बिना, क्लाइंट स्वचालित रूप से प्रकार का पता लगाने का प्रयास कर सकता है, लेकिन परिणाम सटीक नहीं हो सकता है। इसलिए इसे स्पष्ट रूप से घोषित करना महत्वपूर्ण है।

मीडिया प्रकार

मीडिया प्रकार विभिन्न रूपों में मौजूद हैं। उन्हें विभिन्न समूहों में वर्गीकृत किया गया है:

  • application
  • audio
  • font
  • example
  • image
  • message
  • model
  • multipart
  • text
  • and video

इन श्रेणियों के अपने प्रकार भी हैं। उदाहरण के लिए, application/json application के तहत एक प्रकार है और text/html text के तहत एक प्रकार है।

आप IANA (एक निकाय जो इंटरनेट पर कुछ प्रमुख तत्वों का समन्वय करता है) मीडिया प्रकारों में मीडिया प्रकारों की पूरी सूची पा सकते हैं।

ये सभी प्रकार इंटरनेट पर उपयोग किए जाने वाले टेक्स्ट, ऑडियो, इमेज, HTML, और कई अन्य प्रकारों जैसे विभिन्न डेटा प्रकारों को कवर करते हैं।

ब्राउज़र को संसाधन के मीडिया प्रकार को जानने की आवश्यकता है

जैसा कि मैंने ऊपर उल्लेख किया है, ब्राउज़र को यह जानने की आवश्यकता है कि उसे किस प्रकार की सामग्री प्राप्त होती है। इसे स्पष्ट करने के लिए एक उदाहरण यहां दिया गया है।

निम्न कोड एक Node सर्वर है जो एक 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 पर परिणाम यहां दिया गया है:

JSON रिक्वेस्ट के लिए सही Content-Type हेडर चुनना: एक व्यावहारिक गाइड

आप DevTools के नेटवर्क टैब में हेडर्स की जांच करके प्राप्त रिस्पॉन्स की पुष्टि भी कर सकते हैं।

Chrome ब्राउज़र पर परिणाम यहां दिया गया है:

JSON रिक्वेस्ट के लिए सही Content-Type हेडर चुनना: एक व्यावहारिक गाइड

ब्राउज़र को सामग्री CSS प्रकार के रूप में मिली, इसलिए, इसने इसे CSS के रूप में व्यवहार करने का प्रयास किया।

यह भी ध्यान दें कि ब्राउज़र द्वारा प्राप्त सामग्री के प्रकार का पूरा ज्ञान सुरक्षा कमजोरियों को भी कम करता है क्योंकि ब्राउज़र उस डेटा के लिए सुरक्षा मानकों को लागू करना जानता है।

अब जब आप MIME प्रकारों और उनके महत्व की अवधारणा को समझते हैं, तो आइए JSON पर चलते हैं।

JSON के लिए सही Content-Type

JSON को ब्राउज़र द्वारा सही ढंग से व्याख्या किया जाना चाहिए ताकि इसका उचित उपयोग किया जा सके। text/plain आमतौर पर JSON के लिए उपयोग किया जाता था, लेकिन IANA के अनुसार, JSON के लिए आधिकारिक MIME प्रकार application/json है।

इसका मतलब है कि जब आप सर्वर को JSON भेज रहे हों या सर्वर से JSON प्राप्त कर रहे हों, तो आपको हमेशा हेडर के Content-Type को application/json के रूप में घोषित करना चाहिए क्योंकि यह वह मानक है जिसे क्लाइंट और सर्वर समझते हैं।

निष्कर्ष

जैसा कि ऊपर कहा गया है, सर्वर (ब्राउज़र की तरह) को भेजे गए डेटा के प्रकार को जानने की आवश्यकता होती है, मान लीजिए, एक POST रिक्वेस्ट में। यही कारण है कि फाइलों वाले forms में आमतौर पर enctype एट्रिब्यूट होता है जिसका मान multipart/form-data होता है।

इस तरह रिक्वेस्ट को एन्कोड किए बिना, POST रिक्वेस्ट काम नहीं करेगी। साथ ही, एक बार सर्वर को पता चल जाता है कि उसे किस प्रकार का डेटा मिला है, तो वह जानता है कि एन्कोडेड डेटा को कैसे पार्स करना है।

इस लेख में, हमने देखा कि MIME प्रकार क्या हैं और उनका उद्देश्य क्या है। साथ ही, हमने JSON के लिए आधिकारिक कंटेंट टाइप देखा। मुझे आशा है कि अब आप जानते हैं कि इंटरनेट पर उपयोग किए जाने पर संसाधन प्रकारों की घोषणा करना क्यों महत्वपूर्ण है।

  1. Microsoft 365 क्या है? Office 365 का नया चेहरा समझाया गया Microsoft 365 क्या है? Office 365 का नया चेहरा समझाया गया

    21 अप्रैल, 2020 को, Microsoft ने आधिकारिक तौर पर अपने ऑफिस सुइट लाइनअप को Office 365 से Microsoft 365 पर स्विच किया। अधिकांश Office उपयोगकर्ता सॉफ्टवेयर सुइट से तुरंत परिचित होंगे। Word, Excel और PPT जैसे घरेलू नामों को शामिल करते हुए, Microsoft 365 व्यक्तिगत और एंटरप्राइज़ उपयोग दोनों के लिए सॉफ्टव

  1. आपके Nextcloud सर्वर के लिए इंस्टॉल करने के लिए 5 सर्वश्रेष्ठ ऐप्स आपके Nextcloud सर्वर के लिए इंस्टॉल करने के लिए 5 सर्वश्रेष्ठ ऐप्स

    क्लाउड में फ़ाइलें संग्रहीत करने के लिए बहुत सारे विकल्प हैं। Dropbox, OneDrive, और Google Drive उनमें से कुछ हैं। उस ने कहा, आप अपने डेटा पर अधिक नियंत्रण चाहते होंगे। आप Nextcloud को अपने सर्वर पर इंस्टॉल कर सकते हैं और यदि आप चाहें तो एंड-टू-एंड एन्क्रिप्शन भी सक्षम कर सकते हैं। जबकि Nextcloud अप

  1.  पिंग  क्या है और यह इंटरनेट को कैसे प्रभावित करता है? "पिंग" क्या है और यह इंटरनेट को कैसे प्रभावित करता है?

    यदि आप काफी लंबे समय से वेब ब्राउज़ कर रहे हैं या मल्टीप्लेयर गेम खेलना पसंद करते हैं, तो आप पिंग शब्द से परिचित हो सकते हैं। आप शायद पहले से ही जानते हैं कि पिंग जितना कम होगा, आपका कनेक्शन उतना ही बेहतर होगा। लेकिन पिंग वास्तव में क्या है? कंप्यूटिंग की दुनिया में इसका क्या अर्थ है, और इसका इतना अ