Contact us

एचटीटीपी प्रोटोकॉल क्या होता है और कैसे काम करता है

 Explain HTTP Protocol in Hindi HTTP


HTTP प्रोटोकॉल एक ऐसा प्रोटोकॉल है जिसे वर्ल्ड वाइड वेब में फाइलों (इमेज फाइल, टेक्स्ट फाइल, ऑडियो, वीडियो फाइल आदि) को क्लाइंट और सर्वर कम्प्यूटर्स के बीच स्थानांतरित (Transferring Files) करने के लिए उपयोग में लाया जाता है| वर्ल्ड वाइड वेब में मौजूद क्लाइंट और सर्वर कंप्यूटर जब भी आपस में सम्पर्क स्थापित करते हैं एचटीटीपी प्रोटोकॉल का उपयोग करते हैं|

अगर कोई सर्वर कंप्यूटर वर्ल्ड वाइड वेब (www) का हिस्सा बनना चाहता है तो उस सर्वर कंप्यूटर को एचटीटीपी सर्वर सॉफ्टवेयर इंस्टाल करना होगा| अब किसी भी क्लाइंट कंप्यूटर में मौजूद ब्राउज़र सॉफ्टवेयर इस एचटीटीपी सर्वर को फाइलों की रिक्वेस्ट भेज सकता है|

जब भी ब्राउज़र में किसी वेबसाइट का एड्रेस व यूआरएल लिखते हैं तो ब्राउज़र एचटीटीपी प्रोटोकॉल का उपयोग करके ही यूआरएल जिस सर्वर का होता है उस सर्वर को वेब फाइल व वेब पेज की रिक्वेस्ट भेजता है|

एचटीटीपी प्रोटोकॉल में यह पारिभाषित (Define) है कि सर्वर और क्लाइंट एक दूसरे से सम्पर्क कैसे स्थापित करेंगे, सम्पर्क स्थापित करते समय क्या क्या डाटा व इनफार्मेशन एक दूसरे को भेजेंगे और इस इनफार्मेशन के आधार पर कैसे एक दूसरे से सम्पर्क करेंगे | नीचे इन्ही डाटा व इनफार्मेशन के बारे में बताया गया है|

1) एचटीटीपी प्रोटोकॉल में सर्वर कंप्यूटर से सम्पर्क के लिए यूआरएल URL (Uniform Resource Locator) का उपयोग किया जाता है यूआरएल सर्वर कंप्यूटर का एड्रेस होता है| यूआरएल URL की सरंचना इस तरह की होती है:-

                      http://www.example.com

हर एक सर्वर कंप्यूटर को एक यूआरएल दिया जाता है इसी यूआरएल के जरिये सर्वर से सम्पर्क स्थापित किया जाता है|

2) एचटीटीपी में सर्वर और क्लाइंट कम्युनिकेशन के लिए एक दूसरे को मैसेज भेजते हैं मैसेज का फॉर्मेट इस तरह का होता है:-

              a) Start Line CRLF
              b) Header fields CRLF
              c) Empty Line CRLF
              d) Message body

जब क्लाइंट सर्वर को रिक्वेस्ट भेजता है और सर्वर क्लाइंट को response व उत्तर भेजता है तो दोनों ही ऊपर बताये मैसेज फॉर्मेट के अनुसार एक दूसरे से कम्युनिकेशन करते हैं| अब आइये इस मैसेज फॉर्मेट को विस्तार से समझते हैं|

Start Line - जब क्लाइंट रिक्वेस्ट भेजता है तो वह Start line में रिक्वेस्ट का टाइप, यूआरएल या फाइल का नाम  और प्रोटोकॉल version लिखता है जैसे  GET / hello.html HTTP/1.1

                       नोट :- एचटीटीपी में फाइलों को रिसोर्स (Resource) भी कहते हैं|

इस उदाहरण में GET रिक्वेस्ट टाइप है एचटीटीपी प्रोटोकॉल में रिक्वेस्ट टाइप होते हैं जैसे PUT, POST, DELETE आदि| रिक्वेस्ट टाइप सर्वर को बताती है की रिक्वेस्ट को किस तरह प्रोसेस करना है उदाहरण के लिए GET रिक्वेस्ट टाइप से start line में लिखी हुई फाइल का पूरा का पूरा content व सामग्री क्लाइंट को भेज दी जाती है|

POST रिक्वेस्ट यह प्रदर्शित करता है कि रिसोर्स में परिवर्तन करने है इसके साथ साथ POST रिक्वेस्ट के द्वारा सर्वर को डाटा भी भेजा जा सकता है और इसी डाटा के जरिये रिसोर्स में परिवर्तन किये जाते हैं| Delete रिक्वेस्ट से रिसोर्स को डिलीट किया जाता है| वैसे तो एचटीटीपी प्रोटोकॉल में बहुत सी रिक्वेस्ट पारिभाषित व define की गयी हैं लेकिन अधिकतर सर्वर केवल दो ही रिक्वेस्ट टाइप की सुविधा उपलब्ध कराते हैं वे हैं GET और POST

रिक्वेस्ट टाइप के बाद फाइल नाम आता है यह सर्वर को बताता है कि क्लाइंट कौन सी फाइल की मांग कर रहा है| इसके बाद प्रोटोकॉल का version आता है कि क्लाइंट कौन से एचटीटीपी version को सपोर्ट करता है|

सर्वर रिक्वेस्ट में आई हुई स्टार्ट लाइन को पढ़ता है और रिक्वेस्ट को verify करता है अगर सब ठीक रहता है तो सर्वर भी response मैसेज में start line लिखता है| सर्वर response मैसेज की स्टार्ट लाइन का फॉर्मेट इस तरह का होता है :-     HTTP/1.1 200 OK . स्टार्ट लाइन का पहला हिस्सा बताता है कि सर्वर किस http version का उपयोग करेगा| दुसरा हिस्सा 200 status कोड है जो क्लाइंट को बताता है की रिक्वेस्ट सफलतापूर्वक पूरी हो गयी है| एचटीटीपी में बहुत सारे status code उपलब्ध है जो कि रिक्वेस्ट की स्थिति को बताते हैं|


अब आइये एचटीटीपी header fields को समझते हैं:-

Header fields रिक्वेस्ट व response के बारे में इनफार्मेशन देते हैं| Header fields का फॉर्मेट इस प्रकार का होता है 
           Header Field Name : Value

क्लाइंट जब रिक्वेस्ट भेजता है तो कुछ इस तरह के Header Fields सर्वर को भेजता है:-

Host : www.example.com
User-agent  : Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Cookie: PHPSESSID=r2t5uvjq435r4q7ib3vtdjq120
Pragma: no-cache
Cache-Control: no-cache 

Host - यह उस सर्वर का नाम है जिसे रिक्वेस्ट भेजी जानी है|
User-Agent - यह सर्वर को बताता है कि रिक्वेस्ट करने वाली मशीन का क्या प्लेटफार्म है|
Accept-Language : यह सर्वर को बताता है कि क्लाइंट कौन कौन सी लैंग्वेज को सपोर्ट  करता है|
Accept-Encoding - यह बताता है कि क्लाइंट ब्राउज़र कौन कौन सी एन्कोडिंग को सपोर्ट करता है|
Accept-Charset - यह बताता है कि क्लाइंट कौन कौन से करैक्टर सेट सपोर्ट करता है|

इन सभी Headers को सर्वर पढ़ता है और इन्ही के अनुसार क्लाइंट को response भेजता है|

जब सर्वर क्लाइंट को response भेजता है तो ऐसा response मैसेज भेजता है:-

HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache/2.2.14 (Win32)
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
Content-Length: 88
Content-Type: text/html
Connection: Closed
<html>
<body>
<h1>Hello, World!</h1>
</body>
</html>

जैसा कि ऊपर सर्वर रिस्पांस मैसेज लिखा गया है इसमें सबसे पहली लाइन तो start line है जिसके बारे में ऊपर बताया गया है| इसके बाद आते हैं हैडर फील्ड्स।
Date : यह सर्वर का टाइम बताता है जिस समय पर सर्वर ने क्लाइंट को रिस्पांस भेजा|
Server : यह क्लाइंट कंप्यूटर व ब्राउज़र को बताता है कि सर्वर पर कौन सा एचटीटीपी सर्वर इनस्टॉल है
Last Modified : क्लाइंट द्वारा मांगी गयी फाइल में कब आखिरी बार सर्वर ने कुछ एडिट किया गया था|
Content-Length : सर्वर द्वारा भेजी गयी फाइल का साइज कितना है|
Content-Type : भेजी गयी फाइल का टाइप|
Connection : सर्वर कंप्यूटर  ने क्लाइंट कंप्यूटर से कनेक्शन बंद कर दिया है|   
Response Body : क्लाइंट द्वारा मांगी गयी फाइल का content व सामग्री| 

ब्राउज़र इस रिस्पांस मैसेज को पढ़ता है और इनके अनुसार फाइल का कंटेंट कंप्यूटर स्क्रीन पर यूजर को दिखा देता है|     

1 Review:

यह पोस्ट आपको किसी लगी इसके बारे में लिखें