HTTP क्या होता है? HTTP और HTTPS में क्या अंतर है?

What is HTTP and HTTPS in Hindi

अक्सर जब भी आप वेब ब्राउज़र के एड्रेस बार पर किसी वेबसाइट की 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 रिज़ॉल्वर का उपयोग करता है।

DNS Resolver - Example

उदाहरण के लिये अगर आप अपने ब्राउज़र के एड्रेस बार पर www.google.com टाइप करते है तो ब्राउज़र पहले उसका IP एड्रेस पता करेगा और फिर उसे गूगल के सर्वर से कनेक्ट करेगा। IP एड्रेस कुछ इस तरह से होगा 172.217.13.68

जब ब्राउज़र रिक्यूएस्ट की गई URL को होस्ट करने वाले कंप्यूटर या सर्वर का IP एड्रेस पता कर लेता है, तब ब्राउज़र सर्वर को HTTP रिक्यूएस्ट भेजता है।

Browser Send HTTP Request

HTTP रिक्यूएस्ट निचे दी गई दो लाइन जितना होता है:

GET /index.html HTTP/1.1
Host: www.example.com

पहला शब्द “GET” है जो की HTTP verb कहलाता है। वेब पर अलग अलग कामो के लिए अलग अलग verbs  होते है, जैसे की फॉर्म डेटा सबमिट करने के लिए (“POST”)।

अगला भाग पाथ बताता है: “/index.html”। होस्ट कंप्यूटर पूरी वेबसाइट के कंटेंट को स्टोर करके रखता है, इसलिए ब्राउज़र को होस्ट कंप्यूटर या सर्वर को यह बताना होता है की वो कौन से पेज को लोड करना चाहता है।

पहली लाइन का आखरी भाग प्रोटोकॉल और प्रोटोकॉल के वर्जन को बताता है: “HTTP/1.1”

दूसरी लाइन में रिक्यूएस्ट की गई URL के डोमेन को बताया गया है। अगर एक होस्ट कंप्यूटर में कई वेबसाइट स्टोर है, तो ये डोमेन होस्ट कंप्यूटर को बताता है कौन सी वेबसाइट की जानकारी चाहिए।

जब होस्ट कंप्यूटर को HTTP रिक्यूएस्ट मिलती है, तो वो जवाब (रेस्पॉन्स) में कंटेंट और मेटाडेटा दोनों को ही भेजता है।

Host Sends Back HTTP Response
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.

How to get google chrome developer tool

या फिर

जिस वेबसाइट को चेक करना चाहते है उसे खोले फिर राइट क्लिक करे फिर आखिर में Inspect क्लिक करे या फिर कीबोर्ड पर “Ctrl + Shift + I” दबाए। जैसे ही पॉप अप विंडो खुले उसमे “Network” टैब पर क्लिक करे।

Google Chrome Inspect Tool

इसके बाद, ब्राउज़र के एड्रेस बार में URL टाइप करें, जैसे “http://www.example.com/index.html” फिर एंटर बटन दबाए। तब लाइव HTTP रिक्यूएस्ट कंसोल में दिखाई देगी, और फिर ब्राउज़र उस पेज या वेबसाइट को दिखाएगा।

Network Tab

अगर हम चाहें तो और अधिक जानकारी के लिए किसी भी एक रिक्वेस्ट फाइल पर क्लिक कर के देख सकते हैं। “Name” कॉलम के अंदर “index.html” पर क्लिक करें। एक पॉप अप टैब खुलेगी और फिर उसमे “Headers” टैब पर क्लिक करना।

Header Tab

“Response headers” में वो सभी हेडर शामिल हैं जिसके बारे में ऊपर बताया गया है, जैसे “Content-Type” और “Content-Length”, साथ ही दूसरे बहुत सारे दिलचस्प हेडर है।

मुख्य HTML फाइल “Response” टैब में मिलेगी।

Response Tab

“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-ControlCache-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 का ही इस्तेमाल करती है।

अगर ये जानकारी आपको अच्छी लगी हो तो इस आर्टिकल को अपने दोस्तों, परिवार जनो और सोशल मीडिया पर जरूर शेयर करे।

Dharmendra Author on Takniki Gyan

मेरा नाम धर्मेंद्र मीणा है, मुझे तकनीक (कंप्यूटर, लैपटॉप, स्मार्टफोन्स, सॉफ्टवेयर, इंटरनेट, इत्यादि) से सम्बन्धी नया सीखा अच्छा लगता है। जो भी में सीखता हु वो मुझे दुसरो के साथ शेयर करना अच्छा लगता है। इस ब्लॉग को शुरू करने का मेरा मकसद जानकारी को ज्यादा से ज्यादा लोगो तक हिंदी में पहुंचना है।

शेयर करे:

Add your first comment to this post