Friday, 29 June 2018

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



क्या आप जानते हैं की HTTP क्या है (What is HTTP in Hindi) और HTTPS क्या है? आपने इन दोनों words को अपने browser के address bar में जरुर देखा होगा, आपने इसे किसी website के url के शुरुआत में जरुर देखा होगा। आपके मन में कभी न कभी यह सवाल आया होगा की आखिर ये हैं क्या, ये काम कैसे करते हैं और HTTP और HTTPS के बीच क्या अंतर है।
what-is-http-and-https-in-hindi

आज इस article में हमने HTTP और HTTPS के बारे में पूरी जानकारी देने की कोशिश की है हमें उम्मीद इसे पढ़ कर HTTP और HTTPS से जुड़े आपके सारे सवालों का जवाब आपको मिल जाएगा।

HTTP क्या है? HTTP का full form "HyperText Transfer Protocol" है। यह एक प्रकार का network protocol है जो की World Wide Web में उपयोग होता है, यहाँ पर protocol का मतलब set of rules से है जो की web browser और server के बीच सूचनाओं के आदान प्रदान के समय उपयोग होते हैं।

जब भी किसी website के address के पहले http लिखा जाता है (जैसे http://www.webinhindi.com) तो web browser और server के बीच किसी भी प्रकार का data (जैसे text, image, audio, video file आदि) transfer होने पर इन्हें कुछ नियमों का पालन करना होता है और ये नियम HTTP protocol द्वारा निर्धारित होंते हैं।

यह protocol यह निर्धारित करता है की transfer होने वाले data का format कैसा होगा, उसका transmission किस तरीके से होगा और अलग-अलग commands पर ब्राउज़र और सर्वर का response कैसा होगा।

आजकल browser में http type करने की जरुरत नही होती क्योंकि ब्राउज़र by default HTTP का उपयोग करता है इसलिए जब आप सीधे वेबसाइट का address enter करते हैं तो उसके सामने automatically http:// आ जाता है।

HTTP कैसे काम करता है? HTTP एक request-response protocol है जो की client और server के बीच communication का एक माध्यम बनता है। यहाँ पर हमारा web browser एक client की तरह और web-server जैसे Apache या IIS एक server की तरह काम करते हैं।

Server में सारे files store रहते हैं और client के request के अनुसार ही server client को response करता है।

HTTP stateless protocol है यानि की client द्वारा भेजे गये सारे requests अपने आप में अलग-अलग execute होते हैं और request का response देने के बाद connection close हो जाता है।

Client को जिस file की जरुरत होती है उसका request वह server को भेजता है और server उस file को ढूँढने के बाद उसे client को send कर देता है।
how-http-works-in-Hindi

HTTP Request Message
Client किसी भी file को access करने के लिए उससे सम्बंधित server को request message send करता है जो की request line, header, और body (optional) से मिलकर बना होता है।

1. Request line: इसमें request method, URL और HTTP version की जानकारी होती है।
  • Request type (method) के कई प्रकार होते हैं, जैसे:
    • GET: इससे server द्वारा भेजे गये response को receive किया जाता है।
    • POST: इसके जरिये HTML form का use करके server को data send किया जाता है।
    • HEAD: इससे response header को receive किया जाता है।
    • PUT: किसी resource को upload किया जाता है।
    • PATCH: Resource को edit किया जाता है।
    • DELETE: Resource को delete करने के लिए।
    • TRACE: Server को test करने के लिए इसका use होता।
  • URL: सर्वर पर उपलब्ध किसी file या web page का address.
  • HTTP version: इसमें यह define होता है की HTTP का कौनसा version (HTTP 1.1 या HTTP 2) use किया जा रहा है।
2. Request Header Line: इसके जरिये कुछ additional information send किये जाते हैं जैसे की date, user agent यानि की client द्वारा use होने वाला software program का detail, referrer आदि।

3. Message Body:  यह एक optional field है इसके जरिये कोई comment के रूप में message send किया जा सकता है।

HTTP Response Message
Client की तरफ से request मिलने के बाद server को request के अनुसार response करना होता है। Response message status line, header lines और body से मिलकर बना होता है।

1. Status line: इसमें protocol version, status code और phrase दिया होता है।
  • Protocol version: इसमें current HTTP version की जानकारी होती है।
  • Status code: यह 3 digit code होता है इससे request का status पता चलता है।
  • Phrase: यह status code को define करता है text के format में।
2. Header line: इससे client को कुछ additional information send किये जाते हैं।

3. Body: body में वह file या document होता है जिसके लिए client ने request किया है। यदि response में error message हो तो body blank होती है।

HTTP Error Codes in Hindi Internet surfing के दौरान आपने कभी न कभी अपने browser पर error का सामना जरूर किया होगा। कई बार यह हमारे लिए बहुत बड़ी समस्या बन जाता है खास तौर पर तब जब हमें इन error के पीछे की वजह समझ न आये।

HTTP से related errors को समझने के लिए कुछ error codes बनाये गये हैं जिन्हें HTTP status code भी कहा जाता है जिनके जरिये हमें error के पीछे के कारण को समझने में मदद करता है।

HTTP से जुड़े कुछ common error codes इस प्रकार हैं:
  • 400 Bad File Request: यह error code तब दिखाई देता है जब हमारा URL गलत हो जैसे की small की जगह capital letter use करना, चिन्हों को type करने में गलती करना आदि।
  • 401 Unauthorized: गलत password enter करने की वजह से यह एरर आ सकता है।
  • 403 Forbidden/Access Denied: जब आप किसी ऐसे page को open कर रहें हों जिसकी permission आपको नही है तो ऐसी स्थिति में यह response code दिखाई दे सकता है।
  • 404 File Not Found:  यह सबसे common error है। जब आप किसी ऐसे file या document के लिए request कर रहें हो जो कि server पर उपलब्ध नही है, या तो delete कर दिया गया है या किसी दुसरे location पर move कर दिया गया है तब ऐसी स्थिति में 404 error आता है।
  • 408 Request Timeout: यह error ज्यादातर उस समय occur होता है जब server का speed slow हो या request किये गये file की size ज्यादा हो।
  • 500 Internal Error: जब sever के configuration में कुछ problem हो तब file को access करने में परेशानी होती है और internal error का status code दिखाई देता है।
  • 503 Service Unavailable: Internet connection में problem हो, server busy हो, या site किसी अन्य address पर move हो गया हो तब इस प्रकार का error आ सकता है।

HTTP Secure क्यों नही है? क्या आपको पता है की HTTP protocol secured नही होता? जी हाँ, HTTP connection के जरिये transfer किये गये data सुरक्षित नही होते इसे आसानी से hack किया जा सकता है। चलिए जानते हैं की आखिर HTTP secured क्यों नही है:

HTTP में data unencrypted form में होता है यानी की ऐसे format में जिसे कोई भी आसानी से समझ सकता है।
HTTP request को बीच में किसी hacker द्वारा read किया जा सकता है।
http-insecured

HTTP में server identification की जरुरत नही होती इसलिए hacker server की तरफ से response भी कर सकता है। इन्ही सभी कारणों की वजह से यह सुरक्षित नही है इसलिए HTTP के जरिये sensitive information जैसे की password, credit card details आदि transfer नही किये जाते।

HTTPS क्या है?
HTTPS का full form "HyperText Transfer Protocol Secured"  है। यह HTTP का secured version है इसमें SSL (Secured Socket Layer) का use होता है जो की browser और server के बीच encrypted form में data transfer करता है।

HTTPS के तीन main goals होते हैं:
  1. Privacy: Data को encrypt करना जिससे की client और server के बीच कोई भी middleman data को read न कर सके।
  2. Integrity: यह ensure करना की data दोनों end के बीच में कहीं change न हुआ हो।
  3. Authentication: इस system में client-server दोनों को एक दुसरे को अपनी-अपनी identity prove करनी पड़ती है इससे यह निश्चित किया जाता है की जिससे communication हो रहा है क्या उसकी पहचान सच में वही है जो वह बता रहा है।
HTTPS connection में सारे data को cryptography के द्वारा encrypt कर दिया जाता है यानि एक ऐसे format में बदल दिया जाता है जिसे बिना decryption key के decode कर पाना मुश्किल होता है और इसी तरह transfer हो रहे sensitive information को protect किया जाता है।

आपने किसी website के URL के शुरुआत में https:// लगा हुआ देखा होगा, इसका मतलब यह है आपका data SSL के trough secured किया गया है। आप Chrome के address bar में ऐसे URL के सामने green color में lock icon के साथ Secure लिखा हुआ देख सकते हैं।

उदाहरण:

HTTPS कैसे काम करता है? जैसा की हमने आपको पहले ही बताया की HTTPS में सारे data encrypt होकर एक end से दुसरे end तक transfer होते हैं इसलिए यदि आपको यह समझना है की HTTPS कैसे काम करता है तो आपको इसके लिए cryptography का concept समझना पड़ेगा।

इसे समझने के लिए आपको निचे दिए गये कुछ terms की जानकारी होनी चाहिए:

Cryptography क्या है?
यह एक method है जिसके जरिये ordinary information (plan text) को unreadable format में convert किया जाता है जिसे केवल authorized user ही read कर सकता है।

Public and Private Keys क्या हैं?
Cryptography में communication को private और secure रखने के लिए दो प्रकार के keys का बहुत ज्यादा उपयोग किया जाता है एक "public key" और दूसरा "private key" जिनका use करके data encryption और decryption किया जाता है।

इस काम के लिए कुछ algorithms बने हुए हैं जिनसे keys generate किया जाता है; private key को अपने पास रखा जाता है और वहीं public key को publicly distribute कर दिया जाता है।

यदि कोई आपको secrete message send करना चाहता है वह आपके द्वारा दिए गये public key से message को encrypt कर देता है जिसे आपको read करने के लिए अपने private key से decrypt करना होगा।

Session Key क्या है?
यह भी एक प्रकार का encryption decryption key है जो की randomly generate होता है और एक निश्चित session यानि की निश्चित समय लिए valid रहता है और फिर इसकी validity खत्म हो जाती है।

Symmetric Encryption क्या है?
जब आप user और website दोनों तरफ से same key के जरिये encryption करते हैं तो इसे symmetric encryption कहते हैं और उस key को symmetric key कहते हैं।

चलिए इतना कुछ समझने के बाद वापस अपने topic पर आते हैं और step by step यह समझने की कोशिश करते हैं की आखिर HTTPS encryption कैसे काम करता है:
  1. मान के चलिए आप browser में Facebook किसी वेबसाइट का address type करते हैं और enter press करते हैं।
  2. आपका browser Facebook के server को HTTPS connection के लिए request करता है।
  3. Facebook अपना public key आपको send करता है और private key अपने पास रखता है।
  4. आपका browser एक तीसरा key generate करता है जिसे session key कहते हैं।
  5. आपका system session key को Facebook द्वारा दिए गये public key से encrypt करता है और उसे Facebook को send कर देता है।
  6. अब उस session key को Facebook का server अपने private key से decrypt करता है। अब आपके browser और server दोनों के पास session key उपलब्ध है।
  7. अब यहाँ पर session key एक तरह से symmetric key की तरह काम करेगा और symmetric encryption के जरिये आपका connection तब तक स्थापित रहेगा जब तक आप साईट close न कर दें।
How-https-work-in-hindi


HTTP और HTTPS में क्या अंतर है?
  • HTTP URL की शुरुआत http:// से होती है जबकि HTTPS URL https:// से शुरू होता है।
  • HTTP एक unsecured protocol है जबकि HTTPS secured है।
  • HTTP में encryption नही होता लेकिन HTTPS connection के लिए encryption जरुरी है।
  • Security certificate की हम बात करें तो HTTP में इसकी जरुरत नही होती लेकिन HTTPS में website की identity के लिए यह जरुरी है।
  • HTTP में data transfer port 80 के जरिये होता है जबकि HTTPS में port 443 का उपयोग होता है।
  • किसी blog या school, college जैसे website जो की information share करने के लिए बनाये गये हैं HTTP का use कर सकते हैं लेकिन shopping sites, social sites, banking जैसे sites को HTTPS use करना चाहिए है ताकि sensitive data जैसे password, credit card detail आदि सुरक्षित रहें।

आज के समय में हर कोई internet का उपयोग करता है ऐसे में हर किसी को पता होना चाहिए की HTTP और HTTPS क्या हैं इनका क्या उपयोग है। इसके अलावा HTTP और HTTPS में क्या अंतर है यह भी पता होना चाहिए ताकि हम अपने data को internet पर securely एक end से दुसरे end तक transfer कर सकें।

आपको यह जानकारी कैसी लगी हमें comment के माध्यम से जरुर बताएं।

नमस्कार, मैं विवेक, WebInHindi का founder हूँ| यह एक मात्र blog है जहाँ से आप web design & development के tutorials हिंदी में प्राप्त कर सकते हैं| अगर आपको हमारा यह ब्लॉग पसंद आये तो आप हमें social media पर follow कर हमारा सहयोग कर सकते हैं|

This Is The Newest Post

इस Post से सम्बंधित किसी भी तरह का प्रश्न पूछने या सुझाव देने के लिए नीचे comment कीजिये.
EmoticonEmoticon