अक्सर जब भी आप वेब ब्राउज़र के एड्रेस बार पर किसी वेबसाइट की URL टाइप करते है, तब आपने देखा होगा की उस लिंक के शुरुआत में HTTP या HTTPS लगा होता है।
क्या आपने कभी सोचा है की ये HTTP या HTTPS होता क्या है और क्यों इसे हर बार सभी वेबसाइट के शुरुआत में इस्तेमाल किया जाता है?
यहाँ तक की अभी आप ये जो आर्टिकल पढ़ रहे है इसकी URL के सुरु में भी HTTPS का ही इस्तेमाल किया गया है। आइए इसके बारे में विस्तार से जानते है।
HTTP क्या होता है?
संक्षेप में कहुँ तो, HTTP का काम है, वेब ब्राउज़र और वेब सर्वर को आपस में जोड़ना और जानकारी को आदान प्रदान करना।
HTTP का फुल फॉर्म HyperText Transfer Protocol है। इसका इस्तेमाल डेटा ट्रांसफर करने के लिए किया जाता है। यह एक नेटवर्क प्रोटोकॉल (इसे एप्लिकेशन प्रोटोकॉल के नाम से भी जाना जाता है) है, जो की ज्यादातर WWW (World Wide Web) के साथ काम में लिए जाता है, जो की वेब ब्राउज़र और सर्वर के बीच जानकारी को आदान प्रदान करने में काम आता हैं।
जब भी आप किसी वेबसाइट की URL टाइप करते हो तो शुरुआत में HTTP या HTTPS लिखा होता है (उदाहरण के लिए https://www.taknikigyan.in/ या https://www.taknikigyan.in/)। वेब ब्राउज़र और सर्वर के बीच किसी भी प्रकार के डाटा (जैसे की टेक्स्ट, इमेज, ऑडियो, वीडियो, या दूसरे डॉक्यूमेंट) को ट्रासंफर करने के लिए कुछ नियमो का पालन करना पड़ता है, जो की HTTP प्रोटोकॉल द्वारा निर्धारित होते हैं।
ये प्रोटोकॉल बताते है की ट्रांसफर होने वाले डेटा (फाइल) का फॉर्मेट कैसा होगा, किस तरह से वो फाइल यूजर को दिखाई देगी, और अलग-अलग कमांड पर ब्राउज़र और सर्वर का रेस्पोंस कैसा होगा।
आजकल ब्राउज़र में HTTP टाइप करने की जरुरत नही होती है, क्योंकि जब भी आप किसी वेबसाइट की URL टाइप करते हो तो ब्राउज़र अपने आप ही http:// शुरुआत में लगा देता है।
HTTP के बेसिक फीचर
तीन बुनियादी विशेषताएं हैं जो HTTP को एक सरल लेकिन शक्तिशाली प्रोटोकॉल बनाती हैं:
HTTP कनेक्शनलेस प्रोटोकॉल है
क्लाइंट (ब्राउज़र) जब HTTP रिक्यूएस्ट शुरू करता है और रिक्यूएस्ट किए जाने के बाद, क्लाइंट रेस्पॉन्स का इंतजार करता है। सर्वर रिक्यूएस्ट को प्रोसेस करता है और फिर उस रिक्यूएस्ट का जवाब (respond) देता है। क्लाइंट को सर्वर से रेस्पॉन्स मिलने के बाद वो कनेक्शन को डिस्कनेक्ट कर देता है।
इसलिए क्लाइंट और सर्वर रिक्यूएस्ट और रेस्पॉन्स (जब एक दूसरे से कनेक्ट होते है) के दौरान ही एक दूसरे को जानते हैं उसके बाद एक दूसरे से अनजान हो जाते है। नए कनेक्शन की रिक्यूएस्ट करते ही क्लाइंट और सर्वर एक दूसरे के लिए, ऐसे हो जाते है जैसे की पहली बार मिल रहे हो।
HTTP एक स्वतंत्र मीडिया है
इसका मतलब है, किसी भी प्रकार का डेटा HTTP द्वारा भेजा जा सकता है (जैसे की टेक्स्ट, इमेज, ऑडियो, वीडियो, या दूसरे डॉक्यूमेंट) जब तक कि क्लाइंट और सर्वर दोनों को पता है कि डेटा कंटेंट को कैसे संभालना है।
यह क्लाइंट के साथ-साथ सर्वर को भी बताता है की जो फाइल ट्रांसफर हो रही है वो किस तरह का कंटेंट है।
HTTP स्टेटलेस प्रोटोकॉल है
जैसा कि ऊपर बताया गया है, HTTP कनेक्शनलेस प्रोटोकॉल है और यह HTTP का एक स्टेटलेस प्रोटोकॉल है। सर्वर और क्लाइंट रिक्यूएस्ट के दौरान ही एक दूसरे के बारे में जानते हैं। बाद में, दोनों एक-दूसरे को भूल जाते हैं।
प्रोटोकॉल के इस व्यवहार के कारण, न तो क्लाइंट और न ही सर्वर को ये पता होता है की दूसरे किसी ब्राउज़र पर या उसी ब्राउज़र के दूसरे टैब में क्या हो रहा है। फिर भले ही उस ही एक फाइल या वेब पेज की रिक्यूएस्ट बार बार की जा रही हो।
HTTP कैसे काम करता है?
HTTP प्रोटोकॉल क्लाइंट-सर्वर आधारित आर्किटेक्चर पर आधारित एक रिक्यूएस्ट-रेस्पॉन्स प्रोटोकॉल है। जहां वेब ब्राउजर, रोबोट और सर्च इंजन आदि HTTP क्लाइंट की तरह काम करते हैं और वेब सर्वर एक सर्वर की तरह काम करता है।
क्लाइंट जिस फाइल की जरुरत होती है उसकी रिक्यूएस्ट सर्वर को करता है और सर्वर उस फाइल को ढूंढ कर क्लाइंट (ब्राउज़र/आप) को भेज देता है।
हम आमतौर पर “taknikigyan.in” और “wikipedia.org” जैसे याद रहने लायक URL ब्राउज़र पर टाइप करते हैं। आइए जानते है की ये पूरा प्रोसेस बैकएन्ड में कैसे काम है।
ब्राउज़र HTTP के जरिये डोमेन को IP एड्रेस में बदल देता है। जिसे DNS (Domain Name System) के जरिये कंट्रोल किया जाता है।
ब्राउज़र उन डोमेन नेम को IP एड्रेस में बदल देता है, जिससे डोमेन कंप्यूटर (होस्ट कंप्यूटर) की लोकेशन का पता चलता है। यह Domain Name System के जरिये कंट्रोल किया जाता है।
ब्राउज़र डोमेन को IP एड्रेस में बदलने के लिए DNS रिज़ॉल्वर का उपयोग करता है।
उदाहरण के लिये अगर आप अपने ब्राउज़र के एड्रेस बार पर www.google.com टाइप करते है तो ब्राउज़र पहले उसका IP एड्रेस पता करेगा और फिर उसे गूगल के सर्वर से कनेक्ट करेगा। IP एड्रेस कुछ इस तरह से होगा 172.217.13.68
जब ब्राउज़र रिक्यूएस्ट की गई URL को होस्ट करने वाले कंप्यूटर या सर्वर का IP एड्रेस पता कर लेता है, तब ब्राउज़र सर्वर को HTTP रिक्यूएस्ट भेजता है।
HTTP रिक्यूएस्ट निचे दी गई दो लाइन जितना होता है:
GET /index.html HTTP/1.1
Host: www.example.com
पहला शब्द “GET” है जो की HTTP verb कहलाता है। वेब पर अलग अलग कामो के लिए अलग अलग verbs होते है, जैसे की फॉर्म डेटा सबमिट करने के लिए (“POST”)।
अगला भाग पाथ बताता है: “/index.html”। होस्ट कंप्यूटर पूरी वेबसाइट के कंटेंट को स्टोर करके रखता है, इसलिए ब्राउज़र को होस्ट कंप्यूटर या सर्वर को यह बताना होता है की वो कौन से पेज को लोड करना चाहता है।
पहली लाइन का आखरी भाग प्रोटोकॉल और प्रोटोकॉल के वर्जन को बताता है: “HTTP/1.1”
दूसरी लाइन में रिक्यूएस्ट की गई URL के डोमेन को बताया गया है। अगर एक होस्ट कंप्यूटर में कई वेबसाइट स्टोर है, तो ये डोमेन होस्ट कंप्यूटर को बताता है कौन सी वेबसाइट की जानकारी चाहिए।
जब होस्ट कंप्यूटर को HTTP रिक्यूएस्ट मिलती है, तो वो जवाब (रेस्पॉन्स) में कंटेंट और मेटाडेटा दोनों को ही भेजता है।
HTTP/1.1 200 OK
अगला नंबर बहुत महत्वपूर्ण है, यह HTTP स्टेटस कोड है, और यह 200 कोड बताता है की डॉक्यूमेंट (“OK”) सफलता पूर्वक प्राप्त हो चुका है। इसका मतलब यह हुआ की क्लाइंट को फाइल सफलता पूर्वक मिल चुकी है।
यदि सर्वर डॉक्यूमेंट को ढूंढ पाने में असफल रहता है, तो स्टेटस कोड उसकी जानकारी देता हैं की किस कारण से फाइल नहीं मिल पाई है।
उदाहरण के लिए, सबसे ज्यादा दिखाई देने वाला स्टेटस कोड 404 (“File not found”) है। ऐसा तब होता है जब आप किसी ऐसे फाइल की रिक्यूएस्ट सर्वर को करते हो जो उस सर्वर पर नहीं है।
अक्सर यूज़र को गलत तरीके से URL टाइप करने की आदत होती है, इसलिए भी 404 का एरर आता हैं।
अगला भाग HTTP रेस्पॉन्स का हेडर हैं। ये ब्राउज़र को ओर अधिक जानकारी देते हैं और यूज़र को कंटेंट को दिखाने में ब्राउज़र की मदद करते हैं।
आमतौर पर ये दो हेडर रिक्यूएस्ट सभी में काम आते हैं:
Content-Type: text/html; charset=UTF-8
Content-Length: 208
Content-Type ब्राउज़र को यह बताता है कि किस तरह का डॉक्यूमेंट या फाइल वापस भेजा गया है (सर्वर या होस्ट कंप्यूटर से)। आमतौर पर वेब पर “text/html” टाइप ही मिलता है, क्योंकि सभी वेब पेज HTML text फाइल में ही होते है।
दूसरे प्रकार की फाइले भी होती है, जैसे images (“image/png”), videos (“video/mpeg”), script (“application/javascript”) इत्यादि का इस्तेमाल भी किया जाता है।
Content-Length डॉक्यूमेंट की साइज बताता है, जो की bytes में होती है, जो ब्राउज़र को यह जानने में मदद करती है कि एक फ़ाइल को डाउनलोड करने में कितना समय लगेगा।
अंत में, HTTP रेस्पॉन्स रिक्यूएस्ट किए गए वास्तविक डॉक्यूमेंट को फिर से आपके कंप्यूटर में लिखता है। उसके बाद वो फाइल या डॉक्यूमेंट आपके सिस्टम में दिखाई देता है। जो HTML फ़ाइल फ़ॉर्मेट में होता है।
HTML फाइल का फ़ॉर्मेट कुछ इस तरह का होता है, लेकिन वो हमे नार्मल वेब पेज की तरह ही दिखता:
<!DOCTYPE html>
<html>
<head>
<title>Example Domain</title>
</head>
<body>
<h1>Example Domain</h1>
<p>This domain is to be used for illustrative examples in documents.</p>
</body>
</html>
ब्राउज़र के पास अब वह सभी जानकारी है जो उसे रिक्यूएस्ट डॉक्यूमेंट को दिखाने के लिए चाहिए। इन सभी प्रोसेस के पूरा होने के बाद ही आप को वो फाइल दिखाई देती है आपके कंप्यूटर पर और ये सारा काम कुछ सेकंड में होता है।
HTTP Request को लाइव कैसे देखे?
कई ब्राउज़रों में डिबगिंग टूल (debugging tool) पहले से होता हैं, जो आपको वेब ब्राउज़ करते समय HTTP रिक्यूएस्ट और उनकी रेस्पॉन्स को लाइव देखने देते हैं।जैसे की Google Chorme, Mozilla Firefox इत्यादि।
आइए इसे क्रोम ब्राउज़र में आज़माते हैं।
सबसे पहले, हमें Chrome डवलपर टूल को खोलना है। इसके लिए आपको ब्राउज़र के दाएं (right) साइड में सबसे ऊपर 3 डॉट दिखाई देंगे, 3 डॉट पर क्लिक करे >> More Tools >> Developer Tools.
या फिर
जिस वेबसाइट को चेक करना चाहते है उसे खोले फिर राइट क्लिक करे फिर आखिर में Inspect क्लिक करे या फिर कीबोर्ड पर “Ctrl + Shift + I” दबाए। जैसे ही पॉप अप विंडो खुले उसमे “Network” टैब पर क्लिक करे।
इसके बाद, ब्राउज़र के एड्रेस बार में URL टाइप करें, जैसे “http://www.example.com/index.html” फिर एंटर बटन दबाए। तब लाइव HTTP रिक्यूएस्ट कंसोल में दिखाई देगी, और फिर ब्राउज़र उस पेज या वेबसाइट को दिखाएगा।
अगर हम चाहें तो और अधिक जानकारी के लिए किसी भी एक रिक्वेस्ट फाइल पर क्लिक कर के देख सकते हैं। “Name” कॉलम के अंदर “index.html” पर क्लिक करें। एक पॉप अप टैब खुलेगी और फिर उसमे “Headers” टैब पर क्लिक करना।
“Response headers” में वो सभी हेडर शामिल हैं जिसके बारे में ऊपर बताया गया है, जैसे “Content-Type” और “Content-Length”, साथ ही दूसरे बहुत सारे दिलचस्प हेडर है।
मुख्य HTML फाइल “Response” टैब में मिलेगी।
“Network” टैब खोलें और ज्याद से ज्यादा वेबसाइटों पर ब्राउज़ करें। हर एक वेबसाइट कितने HTTP रिक्यूएस्ट करती है? रेस्पॉन्स में किस प्रकार के कंटेंट आते है? आपको काफी कुछ नया जानने को मिलेगा।
HTTP Request Message क्या होता है और कैसे काम करता है?
इसमें आप कुछ ऐसी कमांड के बारे में जानेगे जो की ज्यादातर इस्तेमाल की जाती है। हालाँकि, इसके अलावा और भी काफी कमांड इस्तेमाल होती है।
क्लाइंट किसी भी फ़ाइल को एक्सेस करने के लिए उससे संबंधित सर्वर को रिक्यूएस्ट मैसेज भेजता है जो की request line, header, और body (बॉडी जरूरी नहीं होती) से मिलकर बना होता है।
1. HTTP Request Line
Request Line में रिक्यूएस्ट मेथड, URL और HTTP version की जानकारी होती है।
HTTP Request Methods या HTTP Verbs कई प्रकार के होते हैं, जैसेकी:
GET | इसका इस्तेमाल सर्वर से जानकारी हासिल करनी के लिए किया जाता है। |
POST | इसके जरिये HTML form का इस्तेमाल करके सर्वर को डाटा भेजा जाता है। जिससे के जरिये सर्वर पर नई फाइल क्रिएट की जाती है। |
HEAD | ये कंटेंट के status line और header section को ही ट्रांसफर करने के लिए काम आता है। |
PUT | इसका इस्तेमाल डाटा या फाइल को अपडेट करने के लिए किया जाता है। जिससे पुरानी फाइल या डाटा को हटा कर नई फाइल के साथ बदल दिया जाता है। |
PATCH | ये PUT की तरह होता है, लेकिन पूरी फाइल को अपडेट नहीं करता बल्कि उसका एक हिस्से को ही अपडेट करता है। |
DELETE | जैसा की नाम से ही पता चल रहा है की इसका इस्तेमाल सर्वर से जानकारी, फाइल या डाटा को delete करने के लिए किया जाता है। |
TRACE | इसका इस्तेमाल सर्वर को टेस्ट करने के लिए किया जाता है। |
URL: सर्वर पर उपलब्ध किसी भी फाइल या वेबपेज का एड्रेस या लिंक को URL कहाँ जाता है।
HTTP Version: इसमें यह बताया जाता है की HTTP का कौन सा version (HTTP 1.1 या HTTP 2 या और कोई) इस्तेमाल किया जा रहा है।
2. HTTP Request Header Line
इसके जरिये कुछ अतिरिक्त जानकारी सर्वर को भेजी जाती हैं, जैसे की डेट, टाइम, यूज़र कौन सा ब्राउज़र और ऑपरेटिंग सिस्टम इस्तेमाल कर रहा, किस भाषा में वह जानकारी चाहता है इत्यादि जानकारी सर्वर को दी जाती है। जिससे सर्वर उसके अनुसार फाइल या डाटा को क्लाइंट को भेजता है।
Cache-Control | Cache-Control एक HTTP हैडर है जिसका उपयोग क्लाइंट रिक्यूएस्ट और सर्वर रेस्पॉन्स दोनों में ब्राउज़र caching policy को दर्शाने के लिए किया जाता है। Cache-Control बताता हैं कि कैसे एक रिसोर्स को cache किया गया है, कब वह एक्सपायर हो रहा है, कितने समय के लिए उसकी कॉपी को स्टोर करके रखना है इत्यादि। |
Accept | ये सर्वर को बताता है ब्राउज़र या क्लाइंट किस तरह फाइल accept करता है या किस भाषा को वो समझता है। जिससे सर्वर उसी भाषा में कम्यूनिकेट करता है या उसी फाइल फॉर्मेट को भेजता है। |
Accept-Encoding | ये सर्वर को बताता है की ब्राउज़र या क्लाइंट किस तरह की एन्कोडिंग समझता है। जिससे सर्वर उसी एन्कोडिंग भाषा में कम्यूनिकेट या जवाब देता है। |
Accept-Language | ये सर्वर को बताता है की ब्राउज़र या क्लाइंट किस तरह की भाषा समझता है। जिससे सर्वर उसी भाषा में जवाब देता है। |
Authorization | इसका इस्तेमाल ऑथॉराइजेसन के लिए किया जाता है। जब सर्वर यूजरनाम और पासवर्ड मांगता है किसी फाइल को एक्सेस करने के लिए, उस समय Authorization का इस्तेमाल होता है। |
Connection | ये सर्वर को बताता है अगर ट्रांसेक्शन ख़त्म भी हो जाए तब भी कनेक्शन बनाए रखना है। जैसा की मैंने शुरू में ही बताया था की, एक बार ट्रांसेक्शन ख़त्म हो जाता है तो HTTP वही पे कनेक्शन को बंद कर देता है। |
Content-Length | ये सर्वर और ब्राउज़र दोनों को ही बताता है की कंटेंट कितना बड़ा है और ये bytes में होता है। |
Content-Type | ये सर्वर और ब्राउज़र दोनों को ही बताता है की कंटेंट किस टाइप का होगा। |
Date | ये डेट और टाइम बताता है। |
Host | ये सर्वर को डोमेन के बारे में बताता है की क्लाइंट कौन से डोमेन यानि की कौन सी वेबसाइट की बात कर रहा है या कौन सी वेबसाइट के डाटा की रिक्यूएस्ट कर रहा है। |
Range | ये फाइल या डाटा की range बताता है की कहा तक की फाइल चाहिए। उदाहरण के लिए अगर आप कोई वीडियो देख रहे है लेकिन आपको पूरा वीडियो नहीं देखना है और उसका कोई एक पॉइंट के बारे में जानना है तो डायरेक्ट उस पॉइंट पर जा सकते है बाकि वीडियो को स्कीप करके। ठीक उसी तरह से अगर सर्वर में कई सारी फाइल है और आप किसी एक फाइल को देखना चाहते है तो सर्वर उसे स्कीप करके वही फाइल दिखाएगा जिसकी रिक्यूएस्ट की है। |
User-Agent | ये सर्वर को बताता है क्लाइंट कौन सा ब्राउज़र और ऑपरेटिंग सिस्टम इस्तेमाल कर रहा है और कौन सी भाषा को समझता है। जिससे सर्वर उसी के अनुसार फाइल को भेजता है जो उस ब्राउज़र में सपोर्ट करती है और क्लाइंट की भाषा में भेजता है। |
Via | ये सर्वर को बताता है की जो रिक्यूएस्ट आई है वो प्रॉक्सी के जरिये आई है। |
3. Body
बॉडी वो पार्ट होता है जिसके लिए क्लाइंट ने रिक्यूएस्ट किया है। जिस फाइल के बारे मे वों जानना चाहता है, वो बॉडी कहलाती है।
जिस तरह से HTTP Request Header होते है उसी तरह से HTTP Response Header भी होते है। इनमे ज्यादातर इसी तरह के कोड होते है जैसा अभी मैंने ऊपर बताया है।
इस लेख में मैंने कुछ सामान्य HTTP Request ही बताई है, इसके अलावा और भी काफी सारी HTTP Request और Response होते है।
अगर आप HTTP Request और Response Header के बारे में और अधिक जानना चाहते है तो निचे कमेंट में बताए ताकि मैं उसकी पूरी लिस्ट आपके साथ शेयर कर सकू।
आइए अब आगे बढ़ते है और HTTP Status Codes के बारे में जान लेते है।
HTTP स्टेटस कोड की पूरी सूची
जब क्लाइंट किसी वेबसाइट के लिए सर्वर को रिक्यूएस्ट करता है तो सर्वर हमे HTTP status code के साथ जवाब देता है।
HTTP status code के ज़रिये ये पता चलता है की जो रिक्यूएस्ट क्लाइंट के ज़रिये सर्वर को भेजी गई है वो सफलता पूर्वक पूरी हो चुकी है या उस में कोई एरर आया है।
अगर कोई एरर आया है तो वो किस तरह का एरर है ये status code के जरिये पता चलता है।
आइए जानते है ये कितने प्रकार के स्टेटस कोड होते है और कौन सा स्टेटस कोड किस एरर को दर्शाता है।
एरर कोड के प्रकार डिस्क्रिप्शन के साथ
1xx: Informational | इसका मतलब है कि रिक्यूएस्ट प्राप्त हो चुकी है और काम शुरू कर दिया गया है। |
2xx: Success | इसका मतलब है कि कार्रवाई सफलतापूर्वक प्राप्त हुई, समझी गई, और स्वीकार की गई। |
3xx: Redirection | इसका मतलब है कि या तो URL बदल दी गई है या फिर किसी दूसरे पेज पर मूव कर दिया गया है। |
4xx: Client Error | इसका मतलब है कि क्लाइंट की तरफ से गलत रिक्यूएस्ट कि है या फिर किसी कारन से रिक्यूएस्ट पूरी नहीं की जा सकती है। |
5xx: Server Error | इसका मतलब है कि सर्वर की तरफ से रिक्यूएस्ट को पूरा नहीं किया जा रहा है या सर्वर में कोई समस्या होने से आपकी रिक्यूएस्ट पूरी नहीं हो पा रही है। |
अगर अभी भी ठीक से समझ में नहीं आया तो निचे कुछ एरर कोड दिए हुए है और वो एरर कब आता है यह भी बताया हुआ है। जिसके जरिये आसानी से समझ में आ जाएगा।
1xx: Information responses
100 Continue | ये बताता है कि अब तक सब कुछ ठीक है और अगर क्लाइंट चाहे को रिक्यूएस्ट को जारी रख सकता है, या बंद कर सकता है अगर काम पूरा हो चूका हो तो। |
101 Switching Protocol | इसके अंतर्गत अनुरोधकर्ता (requester) सर्वर को प्रोटोकॉल को बदलने (switch) के लिए कहता है और सर्वर उसके अनुसार प्रोटोकॉल को बदल देता है। |
102 Processing | ये कोड बताता है कि सर्वर को रिक्यूएस्ट प्राप्त हो चुकि है और वह उस रिक्यूएस्ट को प्रोसेस कर रहा है। |
103 Early Hints | ये कोड क्लाइंट को पहले ही हिंट दे देता की किस तरह की फाइल या लिंक सर्वर से आने वाली है तो क्लाइंट उस के अनुसार पहले ही तैयार हो जाता है, जिससे फाइल जल्दी लोड होती है। |
2xx: Successful responses
200 OK | ये बताता है की ट्रांसेक्शन (जैसे की कोई फाइल एक जगह से दूसरी जगह भेजना, सर्वर से किसी फाइल की रिक्यूएस्ट करना या उसे अपडेट करना, इत्यादि) सफलता पूर्ण रहा। |
201 Created | ये बताता है की जो फाइल (जैसे की डॉक्यूमेंट, इमेज, वीडियो, इत्यादि) आप क्रिएट करना चाह रहे थे वो सफलता पूर्ण क्रिएट हो चुकी है। |
202 Accepted | ये बताता है की आपकी रिक्यूएस्ट मिल चुकी है लेकिन उस पे काम अभी शुरू नहीं किया। ये जब काम आता है जब पहले से कोई प्रोसेस चल रहा है और नई रिक्यूएस्ट को accept तो कर लिए लेकिन पहले वाला प्रोसेस ख़तम होगा फिर ही नई प्रोसेस शुरू होगा। |
203 Non-authoritative Information | ये बताता है की क्लाइंट और मुख्य सर्वर के बिच प्रॉक्सी (प्रॉक्सी सर्वर या प्रॉक्सी साइट) का इस्तेमाल किया जा रहा है। |
204 No Content | ये बताता है की क्लाइंट के द्वारा दी गई रिक्यूएस्ट पूरी हो चुकी है लेकिन क्लाइंट के इस्तेमाल करने के लिए कोई कंटेंट नहीं है। उदाहरण के लिए, कई बार आप फाइल को सेव करते है बिना कुछ बदलाव किये या इसका इस्तेमाल ज्यादातर cache कॉपी के लिए किया जाता है। |
205 Reset Content | कई बार जब हम फॉर्म भरते है तो उसने reset का ऑप्शन होता है, जिसपे क्लिक करते ही फॉर्म रिसेट हो जाता है और सब पहले जैसा हो जाता है। किसी फॉर्म या वेब पेज को reset करने के लिए इसका इस्तेमाल किया जाता है। |
206 Partial Content | इसका इस्तेमाल केवल कुछ हिस्सों को डिलीवर करने के लिए किया जाता है जो की bytes में होते है। उदाहरण के लिए, जब आप कोई फाइल डाउनलोड करते है और इंटरनेट connectivity या किसी और एरर की वजह से फाइल अधूरी रह जाती है। फिर बाद में जब आप उसे resume करते है तब उस फाइल का बाकि का हिस्सा डाउनलोड होना शुरू होता है न की पूरी फाइल। |
207 Multi-Status | ये कई ऐसे रिसोर्स के बारे में जानकारी देते है, जहा पर कई स्टेटस कोड का इस्तेमाल होना होता है। तब ये कोड आता है। |
208 Already Reported | एक कलेक्शन या ग्रुप के अंदर बार बार गिनती से बचने के लिए एलिमेंट का इस्तेमाल किया जाता है। तब ये कोड आता है। |
226 IM Used | सर्वर ने किसी दिए गए रिसोर्स के लिए क्लाइंट कि रिक्यूएस्ट को पूरा कर दिया है, और रेस्पॉन्स वर्तमान घटना पर लागू एक या अधिक घटना जोड़ तोड़ के परिणाम को दर्शाता है। |
3xx: Redirection messages
300 Multiple Choices | ये यूजर को एक से अधिक लिंक का ऑप्शन देता है। उदाहरण के लिए, आप यूट्यूब पर कोई वीडियो देख रहे है तो उसमे एक वीडियो के लिए कई अलग अलग वीडियो रेसोलुशन का ऑप्शन आता है, जिसकी मदद से अपने जरूरत के हिसाब से HD (High Definition), 1080P, 720P, चुन सकते है। इस कोड के जरिये एक लिंक में कई लिंक डाली जलती है। |
301 Moved Permanently | ये सर्वर को बताता है की इस पेज की URL बदल चुकी है और जब भी कोई उस लिंक पर क्लिक करता है तो ये उसे नई URL पर भेज (redirect) देता है। |
302 Found (Moved Temporarily) | ये कोड बताता है कि रिक्यूएस्ट की गई resource (फाइल, वीडियो, डोकेमंत, इत्यादि) का URL temporarily बदल दिया गया है। भविष्य में URL में और बदलाव किए जा सकते हैं। |
303 See Other | ये कोड बताता है कि रीडायरेक्ट नए अपलोड किए गए रिसोर्स का लिंक नहीं है, बल्कि दूसरे पेज पर का लिंक है, जैसे कि कन्फर्मेशन पेज या अपलोड प्रोग्रेस पेज या फिर सब्सक्रिप्शन या अनसब्सक्रिप्शन पेज। जब आप किसी वेबसाइट को सब्सक्राइब या अनसब्सक्राइब करते हो तो एक नया पेज खुलता है जिस पर लिखा होता है कि “Thank you for subscribing us”, उसी पेज को ये कोड दर्शाता है। |
304 Not Modified | इसका उपयोग कैशिंग (caching) के लिए किया जाता है। यह क्लाइंट को बताता है कि रेस्पॉन्स को मॉडिफाइड नहीं किया गया है, इसलिए क्लाइंट रेस्पॉन्स के पुराने cached version का उपयोग कर सकता है। |
305 Use Proxy | ये कोड बताता है की किसी प्रॉक्सी का इस्तेमाल करके URL को एक्सेस किया जा रहा है। |
306 Unused | अब इस कोड का इस्तेमाल नहीं किया जाता है। इसका इस्तेमाल HTTP के पुराने वर्जन में किया जाता था। लेकिन अभी भी इसे रिज़र्व रखा जाता है। |
307 Temporary Redirect | इसका इस्तेमाल तब किया जाता है जब किसी URL को टेम्पररी दूसरी URL पर रीडायरेक्ट किया जाता है। जिसे जल्दी वापिस पुरानी URL पर वापिस कर दिया जाएगा। |
308 Permanent Redirect | ये कोड बताता है की जिस URL को आप एक्सेस करना चाहते है वो पूरी तरह से दूसरी URL में बदल चुकी है और भविष्य में सभी कंटेंट इसी URL के जरिये एक्सेस किये जाएंगे। |
4xx: Client error responses
400 Bad Request | जब सर्वर रिक्यूएस्ट को समझ नहीं पाता तब ये एरर आता है। ये एरर ज्यादातर क्लाइंट की तरफ से गलत डिटेल डाल देने से होते है जैसे की गलत सिंटेक्स, लिमिट से अधिक बड़ी फाइल का अपलोड करना, इत्यादि। |
401 Unauthorized | जब गलत यूजरनाम और पासवर्ड डालते है तब ये एरर आता है। ये ज्यादातर लॉगिन के समय होता है। |
402 Payment Required | इसका इस्तेमाल ज्यादातर पेमेंट के लिए किया जाता है। जैसे की किसी ऑनलाइन शॉप या किसी भी तरह का ऑनलाइन पेमेंट कि जब जरुरत होती है तब ये एरर आता है। |
403 Forbidden | ये एरर तब आता है जब क्लाइंट के पास कंटेंट को एक्सेस करने का अधिकार न हो या unauthorized एक्सेस हो, इसलिए सर्वर रिक्यूएस्ट रिसोर्स देने से माना कर देता है। |
404 Not Found | ये एरर अक्सर आपने देखा ही होगा किसी ना किसी वेबसाइट पर। ये एरर तब आता है जब कोई पेज या फाइल सर्वर को नहीं मिलती है या क्लाइंट की तरफ से गलत URL टाइप करदी जाती है। |
405 Method Not Allowed | ये एरर तब आता है जब कोई रिक्यूएस्ट मेथड सपोर्ट नहीं करता है। जैसे की किसी फाइल पर read-only का ही ऑप्शन आता है तो उसे आप कॉपी नहीं कर सकते है और ना ही उस में कुछ बदला;, किसी किसी वेबसाइट पर राइट क्लिक भी डिसेबल होता है, जिससे आप कंटेंट को कॉपी नहीं कर सकते। |
406 Not Acceptable | रिक्यूएस्ट किये गए रिसोर्स के अनुसार वो केवल जनरेट किये हुए कंटेंट को ही एक्सेप्ट करेगा इसके अलावा और किसी को भी एक्सेप्ट नहीं करेगा। |
407 Proxy Authentication Required | जब आप प्रॉक्सी का इस्तेमाल करते है तब उस प्रॉक्सी की तरफ से ऑथेंटिकेशन चाइये होता है, तब ये एरर आता है। |
408 Request Timeout | ये एरर तब आता है जब सर्वर को जवाब देने में सामान्य समय से अधिक समय लगता है। अगर सर्वर किसी टास्क को करने में 300 सेकंड का समय लेता लेकिन उसी टास्क को करने में उससे ज्यादा समय लगता है तब ये एरर आता है। |
409 Conflict | जब किसी सर्वर में एक ही समय में दो बार एडिट किया जा रहा हो या किसी एक काम को करने के लिए दो अलग अलग कमांड दी जा रही हो, तब ये एरर आता है। किसी एक काम को लेकर किसी दो लोगो के बिच टकराव होता है तो उसे conflict कहा जाता है। |
410 Gone | ये एरर तब आता है जब कोई पेज या फाइल सर्वर पर से एडमिन द्वारा हटा दी गई हो। |
411 Length Required | ये एरर तब आता है जब कंटेंट की लेंथ बताई नहीं होती है। अगर आप किसी भी सर्वर को रिक्यूएस्ट करते है किसी भी कंटेंट के लिए तो उसे पहले से उस कंटेंट की लेंथ बतानी होती है की वो फाइल या डाटा कितनी मेगाबाइट, गीगाबाइट, या किलोबाइट में है। |
412 Precondition Failed | क्लाइंट जब रिक्यूएस्ट करता है, तो उसमे कंडीशन पहले से ही बताई होती है, अगर वो कंडीशन मैच नहीं करती तब ये एरर आता है। |
413 Request Entity Too Large (Payload Too Large) | अगर रिक्यूएस्ट सर्वर की क्षमता से अधिक है या बड़ी है तो सर्वर उसे accept नहीं करता है और वही कनेक्शन को बंद कर देता है या फिर “Retry-After Some Time” का एरर दे देगा। |
414 Request-URL Too Long | क्लाइंट की तरफ से रिक्यूएस्ट की गई URL अधिक लम्बी होने की वजह से सर्वर उसे प्रोसेस नहीं कर पा रहा होता है, तब ये एरर आता है। |
415 Unsupported Media Type | कई बार क्लाइंट ऐसी फाइल को अपलोड करने की कोशिस करता है जिसका फॉर्मेट सर्वर सपोर्ट नहीं करता, तब ये एरर आ जाता है। उदाहरण के लिए सर्वर केवल JPG और PNG फाइल को ही सपोर्ट करता है, तब अगर क्लाइंट किसी दूसरी इमेज फाइल को अपलोड करेगा तो एरर आएगा Unsupported Media Type। |
416 Requested Range Not Satisfiable | जब क्लाइंट किसी फाइल का कोई एक हिस्सा एक्सेस करने के लिए सर्वर को रिक्यूएस्ट करता, लेकिन सर्वर उसकी सप्लाई करने से माना कर देता है, तब ये एरर आता है। |
417 Expectation Failed | जो एक्सपेक्टेशन (अपेक्षा) सर्वर से होती है, सर्वर उसे पुरा करने में असमर्थ होता है, तब ये एरर आता है। |
418 I’m a teapot | इसे 1998 में अप्रैल फूल डे पर लांच किया गया था, अप्रैल फूल जोक के रूप में। सर्वर पर इसका इस्तेमाल नहीं होता है। |
421 Misdirected Request | रिक्यूएस्ट सर्वर को बताती है की जवाब देने में सक्षम नहीं है। कई बार कनेक्शन को फिर से कनेक्ट करने पर सर्वर, की गई रिक्यूएस्ट का जवाब नहीं दे पाता है। |
422 Unprocessable Entity | सर्वर रिक्यूएस्ट किये गए कंटेंट टाइप को समझता है, और रिक्यूएस्ट का सिंटैक्स भी सही है, लेकिन सर्वर दिए गए निर्देशों को प्रोसेस करने में असमर्थ है, शब्दार्थ एरर के कारण। शब्दार्थ एरर, कुछ ऐसे शब्द होते है जिसे सर्वर ठीक से समझ नहीं पाता। |
423 Locked | इसका मतलब है की जिस रिसोर्स को एक्सेस करना चाहते है वह locked है। |
424 Failed Dependency | रिक्यूएस्ट फ़ैल हो गई क्योंकि यह दूसरे रिक्यूएस्ट पर निर्भर थी और वह रिक्यूएस्ट भी फ़ैल हो गई। |
425 Too Early | सर्वर रिक्यूएस्ट को प्रोसेस करके जोखिम लेने के लिए तैयार नहीं है जिसे की फिर से शुरू किया जा सकता है। |
426 Upgrade Required | सर्वर वर्तमान प्रोटोकॉल के रिक्यूएस्ट पर काम करने से इनकार कर देता है, लेकिन क्लाइंट जब उस रिक्यूएस्ट को किसी दूसरे प्रोटोकॉल में अपग्रेड कर देता है तो सर्वर परफॉर्म करने के लिए तैयार हो जाता है। |
428 Precondition Required | रिक्यूएस्ट को प्रोसेस करने से पहले सर्वर को कंडीशन पहले से बतानी होती है। |
429 Too Many Requests | यूज़र एक ही समय में कई सारी रिक्यूएस्ट एक साथ भेज देता है। तब ये एरर आता है। |
431 Request Header Fields Too Large | सर्वर रिक्यूएस्ट को प्रोसेस करने से मना कर देता है क्योंकि रिक्यूएस्ट का HTTP हैडर बहुत लंबा होता है। रिक्यूएस्ट हैडर के साइज को कम करने के बाद रिक्यूएस्ट को फिर से सबमिट किया जा सकता है। |
451 Unavailable For Legal Reasons | यूज़र उन रिसोर्सेज की रिक्यूएस्ट करता है जो कानूनी कारणों से दिखाए नहीं जा सकते है, जैसे कि सरकार द्वारा सेंसर किया गया वेब पेज या फ़िल्मे। |
5xx: Server error responses
500 Internal Server Error | सर्वर को ऐसी स्थिति का सामना करना पड़ता है जिसके बारे में सर्वर को नहीं पता होता कि कैसे संभालना है और नहीं पता होता की कौन सा एरर मैसेज देखना है, तब ये एरर आता है। |
501 Not Implemented | सर्वर या तो रिक्यूएस्ट मेथड को नहीं पहचानता है, या उसके पास रिक्यूएस्ट को पूरा करने की क्षमता नहीं है। आमतौर पर इसका अर्थ भविष्य की उपलब्धता (उदहारण के लिए वेब-सर्विस API में कोई नया फीचर जोड़ा गया हो) से है। |
502 Bad Gateway | आमतौर पर जब एक सर्वर से दूसरे सर्वर को इनवैलिड रेस्पॉन्स मिलता है, जैसे कि जब एक प्रॉक्सी सर्वर उपयोग करते है, तब ऐसा होता है। |
503 Service Unavailable | सर्वर रिक्यूएस्ट को संभाल नहीं सकता (क्योंकि यह ओवरलोड या मेंटेनेंस के कारण सर्वर डाउन रहता है)। आमतौर पर, यह एरर टेम्पररी होते है। |
504 Gateway Timeout | सर्वर एक गेटवे या प्रॉक्सी के रूप में कार्य कर रहा होता है। ऐसा तब होता है जब रिक्यूएस्ट को प्रोसेस करने में दो सर्वर शामिल होते हैं, और पहला सर्वर बार-बार दूसरे सर्वर के जवाब की प्रतीक्षा करता है। |
505 HTTP Version Not Supported | सर्वर रिक्यूएस्ट में उपयोग किए गए HTTP प्रोटोकॉल वर्जन को सपोर्ट नहीं करता है, तब ये एरर आता है। |
506 Variant Also Negotiates | यह सर्वर में एक इंटरनल कॉन्फ़िगरेशन एरर है। चुना गया रिसोर्स वर्जन स्वयं ट्रांसपेरेंट कंटेंट नेगोशिएशन में जुड़े रहने के लिए कॉन्फ़िगर किया गया है और इसलिए नेगोशिएशन प्रोसेस में कोई भी उपयुक्त एन्डपॉइंट नहीं है। |
507 Insufficient Storage | जब स्टोरेज फुल हो जाती है और तब कुछ उस में स्टोर करना चाहते है तब ये एरर आता है। |
508 Loop Detected | सर्वर रिक्यूएस्ट को प्रोसेस करते समय infinite loop को डिटेक्ट कर लेता है, तब ये एरर आता है। जिससे प्रोसेस ख़त्म नहीं होता और चलता ही रहता है। |
510 Not Extended | क्लाइंट एक रिक्यूएस्ट भेजता है जिसमें एक एक्सटेंशन डिक्लेरेशन शामिल होता है, जो उपयोग किए जाने वाले एक्सटेंशन के बारे में बताता है। यदि सर्वर को ऐसी कोई रिक्यूएस्ट प्राप्त होती है, लेकिन रिक्यूएस्ट के लिए कोई भी एक्सटेंशन सपोर्ट नहीं करता है, तो सर्वर 510 Not Extended एरर दिखाता है। |
511 Network Authentication Required | क्लाइंट को नेटवर्क एक्सेस करने के लिए ऑथेंटिकेशन की आवश्यकता होती है। तब ये एरर आता है। |
ये HTTP स्टेटस कोड की पूरी लिस्ट है। इसके अलावा कुछ unofficial codes भी है। जिसका इस्तेमाल ज्यादातर ngnix, Cloudflare, AWS जैसी सर्विसेज करती है।
HTTPS क्या होता है?
HTTPS का फुल फॉर्म Hypertext Transfer Protocol Secure है। यह HTTP का सुरक्षित वर्जन है जिसमें SSL (Secure Socket Layer) का उपयोग होता है, जो कि ब्राउज़र और सर्वर के बीच एनक्रीपटेड फॉर्म में डेटा ट्रांसफर करता है।
HTTPS कनेक्शन में सभी डेटा को क्रिप्टोग्राफी मेथड के द्वारा encrypt किया जाता है, यानि एक ऐसे फॉर्मेट में बदल दिया जाता है, जिसे डिक्रिप्शन कीय बिना डिकोड कर पाना मुश्किल होता है और इसी तरह ट्रांसफर हो रही संवेदनशील जानकारी को सुरक्षित किया जाता है।
आपने कई वेबसाइट के शुरुआत में https:// लगा हुआ देखा होगा। उदाहरण के लिए:
हमे HTTPS कि जरुरत क्यों पड़ी?
HTTP प्रोटोकॉल सुरक्षित नहीं है। HTTP कनेक्शन के जरिये ट्रांसफर की गई जानकारी या डाटा को आसानी से हैक किया जा सकता है।
HTTP में डेटा अनएनक्रीपटेड (unencrypted) फॉर्म में होता है यानी की ऐसे फ़ॉर्मेट में होता है जिसे कोई भी आसानी से समझ सकता है। HTTP रिक्यूएस्ट को बड़ी ही आसानी से बीच में ही किसी भी हैकर द्वारा पढ़ा या उसमे फेरबदल किया जा सकता है।
HTTP में सर्वर की पहचान की आवश्यकता नहीं होती है। इस ही वजह से यह सुरक्षित नहीं है और HTTP के जरिये संवेदनशील जानकारी जैसे की पासवर्ड, क्रेडिट कार्ड, बैंक अकाउंट इत्यादि की जानकारी आसानी से पता चल जाती है। इसीलिए HTTPS की जरुरत पड़ी।
HTTPS कैसे काम करता है?
HTTPS कम्युनिकेशन को एनक्रीपट करने के लिए एक एन्क्रिप्शन प्रोटोकॉल का उपयोग करता है। उस एन्क्रिप्शन प्रोटोकॉल को ट्रांसपोर्ट लेयर सिक्योरिटी (TLS) कहा जाता है, हालाँकि पहले इसे सिक्योर सॉकेट्स लेयर (SSL) के रूप में जाना जाता था।
यह प्रोटोकॉल asymmetric public key infrastructure का उपयोग करके कम्युनिकेशन को सुरक्षित करता है। इस प्रकार की सुरक्षा प्रणाली डाटा को एन्क्रिप्ट करने के लिए दो अलग-अलग कीय का उपयोग करती है:
प्राइवेट कीय: यह कीय वेबसाइट के मालिक द्वारा कंटोरल और अपने पास रखी जाती है। यह कीय एक वेब सर्वर पर रहती है और इसका उपयोग पब्लिक कुंजी द्वारा एनक्रीपट की गई जानकारी को डिक्रीपट करने के लिए किया जाता है।
पब्लिक कीय: यह कीय पब्लिक में बाँट दी जाती है। पब्लिक कीय द्वारा encrypt की गई जानकारी को केवल प्राइवेट कीय द्वारा decrypt किया जा सकता है।
क्रिप्टोग्राफी मेथड में कम्युनिकेशन को प्राइवेट और सुरक्षित रखने के लिए दो प्रकार के कीय का बहुत अधिक उपयोग किया जाता है, एक “पब्लिक कीय” और दूसरी “प्राइवेट कीय” जिसका उपयोग डेटा एन्क्रिप्शन और डिक्रिप्शन में किया जाता है। जैसा की ऊपर बताया गया है।
यदि आपक कोई संदेश भेजना चाहते है तो वह आप पब्लिक कीय से संदेश को encrypt करके भेज सकते है, जिसे पढ़ने के लिए आपको प्राइवेट कीय से decrypt करना होगा, जो सिर्फ उसी के पास होती है जिसे संदेश भेजा गया है।
HTTPS क्यों महत्वपूर्ण है? यदि वेबसाइट में HTTPS नहीं है तो क्या होगा?
HTTPS वेबसाइटों की सूचना को सुरक्षित रूप से ट्रांसफर करता है और हैकर को ताक-झांक करने से रोकता है।
जब जानकारी को HTTP के माध्यम से भेजा जाता है, तो जानकारी को डेटा पैकेट में तोड़ दिया जाता है जिसे फ्री सॉफ्टवेयर का उपयोग करके आसानी से ताक-झांक या उसमे फेरबदल किया जा सकता है।
HTTP में सभी ट्रांसेक्शन सिंपल प्लेन टेक्स्ट में होते है जिसे आसानी से कोई भी देख और समझ सकता है। वही HTTPS एन्क्रिप्टेड फॉर्म में होते है जिसे देखने और समझ के उसे डिक्रिप्ट करना होता है और उसके लिए डिक्रिप्शन कीय की जरुरत होती है। जो सिर्फ डाटा प्राप्त करने वाले के पास ही होती है।
जब आप HTTPS का इस्तेमाल करते है तो ये सारा काम अपने आप ही हो जाता है।
HTTP और HTTPS में क्या अंतर है?
- HTTP URL की शुरुआत http:// से होती है जबकि HTTPS URL https:// से शुरू होती है।
- HTTP एक असुरक्षित प्रोटोकॉल है जबकि HTTPS अधिक सुरक्षित प्रोटोकॉल है।
- HTTP में एन्क्रिप्शन नहीं होता है लेकिन HTTPS कनेक्शन एनक्रीपटेड होता है।
- HTTP में डेटा ट्रांसफर पोर्ट 80 के जरिये होता है जबकि HTTPS में पोर्ट 443 का उपयोग होता है।
- HTTPS पर लोग ज्यादा भरोसा करते है बजाए HTTP के।
- क्रोम और बाकि सभी ब्राउज़र HTTP वेबसाइट को असुरक्षित बताते है और HTTPS को सुरक्षित बताते है।
- HTTPS URL के शुरू में टाला का icon बना होगा जबकि HTTP वेबसाइट के शुरू “not secure” लिखा होगा।
ऐसी कोई सी भी वेबसाइट जिस पर लॉगिन ID, पासवर्ड, कार्ड डिटेल डालनी होती है वे सभी HTTPS का ही इस्तेमाल करती है जैसे की ecommerce sites, सोशल मीडिया साइट, बैंकिंग साइट, इत्यादि।
बाकि वेबसाइट चाहे तो HTTP का इस्तेमाल भी कर सकती है लेकिन HTTPS का इस्तेमाल करने से लोगो का उस वेबसाइट पर भरोसा बढ़ जाता है। वैसे तो आजकल सभी वेबसाइट HTTPS का ही इस्तेमाल करती है।
अगर ये जानकारी आपको अच्छी लगी हो तो इस आर्टिकल को अपने दोस्तों, परिवार जनो और सोशल मीडिया पर जरूर शेयर करे।
मेरा नाम धर्मेंद्र मीणा है, मुझे तकनीक (कंप्यूटर, लैपटॉप, स्मार्टफोन्स, सॉफ्टवेयर, इंटरनेट, इत्यादि) से सम्बन्धी नया सीखा अच्छा लगता है। जो भी में सीखता हु वो मुझे दुसरो के साथ शेयर करना अच्छा लगता है। इस ब्लॉग को शुरू करने का मेरा मकसद जानकारी को ज्यादा से ज्यादा लोगो तक हिंदी में पहुंचना है।
Add your first comment to this post