इंटरनेट: HTTP आणि HTML
मी जास्मिन आहे. मी XBOX One इंजिनीअरींग
टीममध्ये प्रोग्रॅम मॅनेजर आहे.
आमचं एक सर्वांत महत्त्वाचं फिचर म्हणजे
XBOX लाईव्ह. ही ऑनलाईन सेवा असून ती
जगातल्या सगळ्या गेमर्सना जोडते आणि आम्ही
त्यासाठी इंटरनेटवर अवलंबून असतो.
ही सोपी गोष्ट नाही, यासाठी पडद्यामागं अनेक गोष्टी
घडत असतात. लोक कशाप्रकारे एकमेकांशी संवाद
साधतात आणि जोडले जातात, हे इंटरनेटमुळं पूर्णपणे
बदलत आहे. पण हे होतं कसं? जगभरातले कॉम्प्युटर्स
एकमेकांशी कसा संवाद साधतात? वेब ब्राऊझिंगचं
उदाहरण घेऊया.
आधी, आपण वेब ब्राऊझर उघडतो. आपण वेब पेजेस बघण्यासाठी हे अॅप उघडतो. नंतर, आपण
tumblr.com सारख्या ज्या वेबसाईटला भेट द्यायची
आहे, तिचा वेब अॅड्रेस किंवा युआरएल म्हणजे
युनिफॉर्म रिसोर्स लोकेटर टाईप करतो. हाय, मी डेव्हिड कार्प, Tumblr चा संस्थापक. आज आपण रोज
वापरत असलेली वेब ब्राऊझर्स कशाप्रकारे काम करतात,
याबद्दल बोलणार आहोत. तर तुम्हाला कुतूहल वाटत
असेल की तुम्ही वेब ब्राऊझरमध्ये अॅड्रेस टाईप करता
आणि एंटर दाबता तेव्हा नेमकं काय होतं?
आणि तुम्ही कल्पना करू शकणार नाही तितकं हे अद्भुत आहे. तर त्या क्षणी तुमचा कॉम्प्युटर
सर्व्हर नावाच्या दुसऱ्या कॉम्प्युटरशी बोलायला सुरुवात
करतो, जो सामान्यपणे हजारो मैलांवर असतो.
आणि काही मिलीसेकंदांमध्ये तुमचा कॉम्प्युटर त्या
सर्व्हरला वेबसाईट मागतो, आणि तो तुमच्या
कॉम्प्युटरशी HTTP नावाच्या भाषेत बोलायला लागतो.
HTTP म्हणजे हायपर टेक्स्ट
ट्रान्सफर प्रोटोकॉल. एखाद्या डॉक्युमेंटसाठी एक
कॉम्प्युटर दुसऱ्या कॉम्प्युटरशी ज्या भाषेत बोलतो
ती ही भाषा. आणि हे प्रत्यक्षात अगदी सरळ पद्धतीने
घडते.
जर तुमचा कॉम्प्युटर आणि वेब सर्व्हर यांच्यातला संवाद तुम्ही पाहिलात तर
तो मुख्यत: "GET" रिक्वेस्ट्सनी बनलेला असतो. त्या अतिशय साध्या असतात, फक्त शब्द GET
आणि तुम्ही विनंती करत असलेल्या डॉक्युमेंटचं नाव.
त्यामुळं जर तुम्ही Tumblr ला लॉग इन करायचा
प्रयत्न करत असाल आणि आमचं लॉग इन पेज लोड करत असाल, तर तुम्ही Tumblr च्या सर्व्हरला GET ही
विनंती GET /login अशी पाठवत असता. आणि ती Tumblr च्या सर्व्हरला सांगते की तुम्हाला Tumblr
लॉगिन पेजचा सगळा HTML कोड हवा आहे. HTML
म्हणजे हायपरटेक्स्ट मार्कअप लँग्वेज आणि पेज
कसं दिसावं हे वेब ब्राऊझरला सांगण्याची भाषा, असे आपण याला म्हणू शकतो.
जर तुम्ही विकिपीडियासारख्या एखाद्या गोष्टीचा
विचार केलात तर ते एक मोठं साधं डॉक्युमेंट
असतं आणि त्याचं शीर्षक मोठं आणि ठळक करायला, फॉन्ट योग्य ठेवायला, विशिष्ट मजकूर विशिष्ट इतर
पानांना जोडायला, काही मजकूर ठळक करायला, काही मजकूर तिरपा करायला, इमेज पानाच्या मध्यभागी
ठेवायला, इमेज उजव्या बाजूला ठेवायला, इमेज डाव्या बाजूला ठेवायला आपण जी भाषा वापरतो ती HTML
असते. वेबपेजचा मजकूर थेट HTML मध्ये समाविष्ट केलेला असतो,
पण इमेज किंवा व्हिडीओ असे इतर भाग म्हणजे स्वतंत्र
फाईल्स असतात. त्यांच्या वेगळ्या युआरएल असतात.
त्यांना विनंती पाठवणे आवश्यक असते. ब्राऊझर
यातील प्रत्येकाला स्वतंत्र HTTP विनंती पाठवतो आणि
ते आले की दर्शवतो. जर वेबपेजवर खूपच इमेजेस
असतील तर त्यातील प्रत्येकासाठी स्वतंत्र HTTP
विनंती करावी लागते आणि पेज सावकाश लोड होते. आता कधीकधी जेव्हा तुम्ही वेब ब्राऊझ करता तेव्हा
नुसत्या GET विनंत्या पाठवत नाही, तर तुम्ही कधीकधी माहितीही पाठवता, उदा. तुम्ही एखादा फॉर्म भरता किंवा
सर्च क्वेरी टाईप करता. तुमचा ब्राऊझर ही माहिती प्लेन टेक्स्ट म्हणून वेब सर्व्हरकडे
HTTP POST विनंती वापरून पाठवतो. समजा तुम्ही
Tumblr ला लॉगिन केलंत. पहिली गोष्ट तुम्ही करता
ती म्हणजे POST रिक्वेस्ट, ती Tumblr च्या लॉगिन
पेजला काही डेटासह POST केली जाते.
त्यामध्ये तुमचा ईमेल अॅड्रेस आणि पासवर्ड असतो. तो
Tumblr सर्व्हरकडं पाठवला जातो. Tumblr सर्व्हरला
कळतं की तुम्ही डेव्हिड आहात. तो वेबपेज तुमच्या
ब्राऊझरकडे परत पाठवतो, यशस्वी! अशा मेसेजसह.
डेव्हिड म्हणून लॉगिन झाले. पण त्या वेबपेजबरोबर
थोडासा न दिसणारा कुकी डेटा जोडलेला असतो. तो तुमच्या ब्राऊझरला दिसतो आणि तो सेव्ह करायचा आहे हे माहीतही असतं.
आणि हे खरंच महत्त्वाचं असतं कारण त्यामुळंच
वेबसाईटला तुम्ही कोण आहात, हे लक्षात रहातं.
हा सर्व कुकी डेटा म्हणजे, Tumblr साठी एक आयडी कार्ड असतं. हा नंबर तुम्हाला
डेव्हिड म्हणून ओळखतो. आणि तुमचं वेब ब्राऊझर
तो नंबर जवळ ठेवतं आणि पुढच्या वेळी तुम्ही
Tumblr रिफ्रेश केलंत की, पुन्हा Tumblr वर गेलात की
तुमच्या वेब ब्राऊझरला Tumblr च्या सर्व्हरला
पाठवायच्या विनंतीबरोबर तुमचा तो आयडी नंबर
जोडायचा हे माहिती असतं. त्यामुळे आता
Tumblr च्या सर्व्हर्सना तुमच्या ब्राऊझरकडून येणारी
विनंती दिसते आणि आयडी नंबर दिसतो, आणि
"ही डेव्हिडची विनंती आहे" हे कळतं. आता इंटरनेट
पूर्णपणे खुलं आहे. त्याची सर्व कनेक्शन्स सामायिक
आहेत आणि माहिती प्लेन टेक्स्ट रूपात पाठवली जाते. त्यामुळे तुम्ही इंटरनेटवरून पाठवत असलेली
एखादी वैयक्तिक माहिती पाहणे हॅकर्सना शक्य होते.
पण सुरक्षित
वेबसाईट्स याला प्रतिबंध करतात. त्यासाठी त्या तुमच्या वेब ब्राऊझरला सेक्युअर सॉकेट्स लेयर आणि
त्याच्या पुढचा ट्रान्सपोर्ट लेयर सिक्युरीटी वापरून संवाद साधायला सांगतात.
SSL आणि TLS म्हणजे तुमच्या संवादाच्या भोवतालचे सुरक्षेचे लेयर असे आपण म्हणू शकतो. हॅकर्सनी तुमच्या
संवादावर लक्ष ठेवण्यापासून किंवा त्यात बदल करण्यापासून ते संरक्षण करतील. जेव्हा तुम्हाला
ब्राऊझर अॅड्रेसबारमध्ये HTTPS जवळ छोटे कुलूप दिसते, तेव्हा SSL आणि TLS सक्रिय असतात. HTTPS
प्रोटोकॉल्स तुमच्या HTTP विनंत्या सुरक्षित आणि संरक्षित असतील, हे सुनिश्चित करतात. जेव्हा वेबसाईट
तुमच्या ब्राऊझरला सुरक्षित कनेक्शन वापरायला सांगते
तेव्हा ती आधी एक डिजिटल प्रमाणपत्र देते. हे एखाद्या
अधिकृत आयडी कार्डसारखे असून ती वेबसाईट जी असल्याचा दावा करत आहे, त्याचा तो पुरावा असतो.
डिजिटल प्रमाणपत्रे प्रमाणपत्र अधिकाऱ्यांकडून प्रकाशित
केली जातात. या विश्वासार्ह संस्था असून त्या
वेबसाईट्सच्या ओळखीची पुष्टी करतात आणि त्यांना
प्रमाणपत्रे जारी करतात. सरकार आयडी किंवा पासपोर्ट
जारी करते, तसेच. आता जर वेबसाईटने व्यवस्थित जारी केलेल्या डिजिटल प्रमाणपत्राशिवाय सुरक्षित
कनेक्शन सुरू करायचा प्रयत्न केला तर, तुमचा ब्राऊझर
तुम्हाला इशारा देईल. हा वेब ब्राऊझिंगचा पाया आहे!
आपल्याला दररोज दिसणारा इंटरनेटचा भाग. थोडक्यात, HTTP आणि DNS हे HTML, मिडीया
फाईल्स किंवा काहीही वेबवर पाठवणे आणि स्वीकारणे,
यांचे व्यवस्थापन करतात. हे शक्य होण्यासाठी TCP/IP
आणि राऊटर नेटवर्क्स काम करतात. ती माहितीचे विभाजन करून माहिती पॅकेट्सद्वारे पाठवतात. ही
पॅकेट्स 1 आणि 0 च्या बायनरी मालिकेपासून बनलेली
असतात आणि ती प्रत्यक्ष विद्युत तारा, फायबर
ऑप्टिक केबल्स, आणि वायरलेस नेटवर्क्सद्वारे पाठवली जातात.
सुदैवाने, एकदा तुम्ही इंटरनेटचा एक लेयर कसा काम
करतो हे शिकलात की तुम्ही त्यावर कोणतेही तपशील
लक्षात न ठेवता त्यावर अवलंबून राहू शकता. आणि हे
सगळे लेयर्स एकत्रपणे काम करून यशस्वीपणे
मोठ्या प्रमाणात आणि विश्वसनीयरित्या माहिती
पाठवतील, असा विश्वास ठेवू शकतो.