"हाय, अमिगो!"

"हाय, बिलाबो!"

"आज कोणती नवीन गोष्ट सांगशील?"

"बर्‍याच गोष्टी. पण सुरुवात करण्यासाठी, मला वाटते की आम्ही नेटवर्क आणि इंटरनेटसह काम करण्यावर चर्चा करू. स्वारस्य आहे?"

"हो. गॅलेक्टिक इंटरनेट खूप छान आहे."

"ठीक आहे, पण आपण काही इतिहासापासून सुरुवात करूया. 21व्या शतकाच्या सुरुवातीला परिस्थिती अशी होती..."

"इंटरनेटला जोडलेल्या प्रत्येक कॉम्प्युटरचा एक अनन्य क्रमांक होता. हा साधारण 4-बाइट क्रमांक होता. त्याला IP पत्ता म्हणतात."

"परंतु मानवांची स्मरणशक्ती कमी असते आणि 2108458776 सारखे काहीतरी लक्षात ठेवण्यासाठी धडपडते, म्हणून ते बर्‍याचदा प्रत्येक बाइट स्वतंत्रपणे लिहितात."

"आम्ही चार-बाइट क्रमांक 2108458776 वेगळ्या बाइट्समध्ये विभाजित केल्यास, आम्हाला 125.172.135.24 मिळेल. तुम्हाला आठवत असेल की, प्रत्येक बाइटमध्ये 8 बिट असतात आणि त्यात 0 ते 255 पर्यंत संख्या असू शकतात."

"म्हणजे, आम्ही नंबर कसा लिहित आहोत?"

"होय. जेव्हा चार-बाइट क्रमांक अशा प्रकारे लिहिले जातात तेव्हा ते लक्षात ठेवणे (मानवांसाठी) सोपे आहे."

"जसे घडले, फक्त 4 बाइट्स वापरण्याची निवड लवकरच त्यांच्यावर एक क्रूर युक्ती खेळली. इंटरनेटशी कनेक्ट केलेल्या उपकरणांची संख्या इतकी लवकर वाढली की त्यांची संख्या लवकरच संपली."

"ते त्याभोवती कसे आले?"

"त्यांनी तेच केले जे मानव सामान्यतः करतात."

"त्यांनी IP पत्त्यांसाठी एक नवीन मानक आणले आणि अभिमानाने त्याचे नाव IPv6 ठेवले."

"सामान्य आयपी अॅड्रेसच्या विपरीत (ज्याला IPv4 म्हणतात) जो एक अनन्य क्रमांक तयार करण्यासाठी 4 बाइट्स वापरतो, नवीन मानक 16 वापरते."

"फक्त विचार करा, मानवांना सामान्य संख्येतील 10 अंक लक्षात ठेवता येत नाहीत (जसे 2108458776), म्हणून त्यांना त्यांना 4 भागांमध्ये विभागावे लागले, परंतु नंतर त्यांनी 16 बाइट्स असलेली संख्या वापरण्याचा विचार केला."

"हो, कधी कधी माणसं विचित्र असतात."

"हो. माणसं माणसं आहेत."

"ते म्हणाले, ते त्यांच्या संकटातून बाहेर पडले."

"ते संख्या लक्षात ठेवून कंटाळले आणि त्यांना शब्दांनी बदलण्याचा निर्णय घेतला."

"ते कसे आहे? तुम्ही मला उदाहरण देऊ शकाल का?"

"अर्थात, web.mail.com , google.com , new.books.amazon.com , …"

"या प्रकारच्या नावाला डोमेन म्हणतात."

"हे इंटरनेट योग्यरित्या कार्य करण्यासाठी, त्यांनी डोमेन नेम सिस्टम (DNS) नावाची एक विशेष टेबल तयार केली जी प्रत्येक डोमेन नावाचा IP पत्ता संग्रहित करते."

"हे कसे कार्य करते ते येथे आहे."

1)  एक वापरकर्ता ब्राउझरमध्ये पत्ता प्रविष्ट करतो, उदाहरणार्थ, web.mail.com .

2)  ब्राउझर DNS मध्ये प्रवेश करतो आणि IP पत्ता मिळविण्यासाठी डोमेन नाव वापरतो.

३)  आवश्यक URL असलेली विनंती या IP पत्त्यावर पाठवली जाते.

"ते फार सोपे दिसत नाही."

"परंतु या दृष्टिकोनाचे अनेक फायदे आहेत:"

" 1) लोकांना शब्दबद्ध करता येणारी नावे लक्षात ठेवणे सोपे वाटते."

" 2) डोमेन नेम नावाच्या सुरुवातीला सबडोमेन जोडून पदानुक्रमानुसार तयार केले जाऊ शकतात. अगदी Java मधील पॅकेज नावाप्रमाणे."

" 3) जर तुम्हाला वेब सर्व्हरचा IP पत्ता बदलायचा असेल, तर तुम्हाला फक्त DNS रेकॉर्ड बदलण्याची गरज आहे, आणि सर्वकाही पूर्वीप्रमाणेच कार्य करेल - वापरकर्त्यांना नवीन पत्ता लक्षात ठेवण्याची गरज नाही."

"DNS असे काहीतरी दिसते:"

डोमेनचे नाव IP पत्ता
mail.com १२८.३५.३६.१८९
web.mail.com १४५.१२.१७.१३
new.mail.com 192.155.15.3
google.com ९२.११७.१५१.१००
google.com 193.168.0.1
docs.google.com २१७.१२.२२२.१

"अर्थ प्राप्त होतो."

"असो, डोमेन हे संगणकाचे नाव आहे, परंतु आम्हाला संगणकाची गरज नाही — आम्हाला संगणकावर जे आहे ते हवे आहे. URL कशासाठी आहेत."

"सुरुवातीला, URL दुसर्‍या संगणकावरील फाइलची लिंक होती. उदाहरणार्थ:"

उदाहरण
http : // info.codegym.cc/user/info/profile.html _
वर्णन
http  हा क्लायंट-सर्व्हर कम्युनिकेशनसाठी प्रोटोकॉल आहे
info.codegym.cc  हे संगणकाचे डोमेन नाव
user/info/profile.html  संगणकावरील फाइलचा मार्ग आहे

"नेटवर्क डेव्हलपमेंटच्या अगदी सुरुवातीस, वेब सर्व्हर कुठेतरी संचयित करत असलेल्या फायली सर्व्ह करण्यासाठी फक्त URL वापरण्यास सक्षम होता. URL प्रत्यक्षात फाइलचा एक जागतिक मार्ग होता: संगणक नाव + पथ."

"नंतर, जेव्हा वेब सर्व्हरने स्वतः फायली निर्माण करण्यास सुरुवात केली, तेव्हा URL थोडे बदलले आणि वेब सर्व्हरला विनंती बनले. विनंतीचे मापदंड देखील जोडले गेले."

"आज URL च्या शेवटी फाईल विस्तार पाहणे दुर्मिळ आहे. "आधुनिक URL ही पॅरामीटर्ससह फक्त एक अद्वितीय दुवा आहे. ग्लोबल फाईल पाथ ऐवजी मेथड कॉलसारखे आहे."

"एक क्लासिक आधुनिक URL असे दिसते:"

URL पार्स करत आहे
http :// codegym.cc / alpha/api/contacts ? userid=13&filter=none&page=3
URL च्या भागांचे वर्णन
codegym.cc  हे डोमेन नाव आहे — इंटरनेटवरील संगणकाचे अद्वितीय नाव (पत्ता).
http  क्लायंट-सर्व्हर संप्रेषणासाठी प्रोटोकॉल आहे
alpha/api/contacts  ही वेब सर्व्हर विनंती किंवा सर्व्हरवरील वेबपृष्ठासाठी विनंती आहे
userid=13 & filter=none & page=3  ही विनंती पॅरामीटर्स असलेली स्ट्रिंग आहे

"हो, मला आठवतंय. तू मला अलीकडेच URL बद्दल सांगितलंस."

"आणि बंदरांबद्दलही. तुम्ही अपार्टमेंट इमारतीचे उदाहरण वापरले आहे."

"'http' म्हणजे काय ते मला सांगणे चांगले होईल. मला सर्वत्र 'प्रोटोकॉल' लिहिलेले दिसत आहे, परंतु ते काय आहे ते मला स्पष्ट नाही."

"ठीक आहे. मी पुढची अडचण न करता सांगेन."

IP-पत्ता, डोमेन, URL - 1

" HTTP चा अर्थ H yper T ext T ransport P रोटोकॉल आहे आणि ते हायपरटेक्स्ट ट्रान्सफर करण्यासाठी आहे."

"हायपरटेक्स्ट म्हणजे काय?"

"हे HTML आहे."

"ढोबळमानाने बोलायचे झाल्यास, प्रोटोकॉल हा संप्रेषणासाठी नियमांचा एक संच आहे. ते वेब सर्व्हरला पाठवल्या जाणार्‍या विनंत्या आणि कोणत्या फॉरमॅटमध्ये, तसेच वेब सर्व्हरने कसा प्रतिसाद द्यावा याचे वर्णन करते."

"थोडक्यात, परिस्थिती अशी आहे. सामान्य मजकूर फाइल्स किंवा, तुम्हाला आवडत असल्यास, क्लायंट आणि सर्व्हर दरम्यान मजकूराचे मोठे भाग पाठवले जातात. "

" सर्व्हरकडे विनंती येते आणि सर्व्हर प्रत्येक विनंतीला प्रतिसाद देतो."

"अशा विनंतीची आणि प्रतिसादाची उदाहरणे येथे आहेत:"

विनंती
GET alpha/api/contacts HTTP/1.1
Host: codegym.cc
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en; rv:1.9b5) Gecko/2008050509 Firefox/3.0b5
Accept: text/html
Connection: close
वर्णन
GET – request subtype
alpha/api/contacts – request to the web server
HTTP/1.1 – protocol version – HTTP/1.1
Host: codegym.cc – domain name
User-Agent: Mozilla/5 – unique browser name
Accept: text/html – requested document type: HTML
Connection: close – close the server connection after processing the request.

"पहिली ओळ ही वास्तविक विनंती आहे. खालील अतिरिक्त विनंती पॅरामीटर्स आहेत, ज्यांना 'हेडर फील्ड' देखील म्हणतात."

"आणि येथे प्रतिसादाचे उदाहरण आहे:"

प्रतिसाद
HTTP/1.1 200 OK
Date: Wed, 11 Feb 2009 11:20:59 GMT
Server: Apache
X-Powered-By: PHP/5.2.4-2ubuntu5wm1
Last-Modified: Wed, 11 Feb 2009 11:20:59 GMT
Content-Language: en
Content-Type: text/html; charset=utf-8
Content-Length: 1234
Connection: close
<html><body><a href="http://ample.com/about.html#contacts">Click here</a></body></html>
HTTP/1.1 200 OK - «200 OK» means everything is okay.
Date: Wed, 11 Feb 2009 - Date on which the request was processed
Server: Apache - Name of the web server
X-Powered-By: PHP - The server uses PHP
Last-Modified: Wed, 11 Feb 2009 - The time of the last update of the requested file
Content-Language: en - The language of the file
Content-Type: text/html; charset=utf-8This is an HTML-file with UTF-8 encoding
Content-Length: 1234 - The response is 1234 bytes long
Connection: close - The connection will be closed after the request is handled
<html><body><a href="http://ample - The HTML file itself.

"मला दोन गोष्टींकडे तुमचे लक्ष वेधायचे आहे:"

"प्रथम, तुम्ही कोणतीही विनंती केली तरीही, ती सर्व्हरला फाइल विनंतीसारखी दिसते. फाइल सर्व्हरवर आहे की नाही हे महत्त्वाचे नाही किंवा सर्व्हर विनंतीला प्रतिसाद म्हणून तयार करतो."

"दुसरे, फाइल स्वतः HTTP प्रतिसादाचा भाग म्हणून पाठवली जाते . दुसऱ्या शब्दांत, आम्ही सर्व्हरच्या प्रतिसादाच्या सुरुवातीला काही अतिरिक्त डेटा पाहतो आणि नंतर फाइलचा मुख्य भाग सर्व्ह केला जातो. "

"किती मनोरंजक! मला खात्री नाही की मला सर्वकाही समजले आहे. मी हे नंतर पुन्हा वाचेन."

"अरे, मला तुम्हाला आणखी एका छोट्या, पण मनोरंजक गोष्टीबद्दल सांगायचे आहे: कुकीज."

"त्या काय आहेत?"

"एचटीटीपी प्रोटोकॉलनुसार, कुकीज हे माहितीचे छोटे तुकडे असतात जे सर्व्हर क्लायंटवर स्टोरेजसाठी क्लायंटला पाठवतो. आणि त्यानंतरच्या विनंत्यांचा भाग म्हणून त्या सर्व्हरला परत पाठवल्या जातात. "

"आणि त्यात काय मुद्दा आहे?"

"समजा एखाद्या वापरकर्त्याने वेबसाइटच्या मुख्यपृष्ठावर साइन इन केले आहे. सर्व्हर या वापरकर्त्यासाठी सर्व्हरवर एक सत्र ऑब्जेक्ट तयार करतो आणि एक अद्वितीय सत्र क्रमांक क्लायंटला कुकी म्हणून पाठविला जातो. क्लायंटकडून पुढील विनंती दरम्यान सर्व्हर, हा सत्र क्रमांक, इतर कुकीजसह, सर्व्हरवर परत पाठविला जाईल. याचा अर्थ सर्व्हर नवीन विनंती पाठवलेल्या वापरकर्त्यास ओळखू शकतो."

"किती मनोरंजक!"

"हो. जेव्हा तुम्ही तुमचे स्वतःचे सर्व्हलेट्स लिहाल, तेव्हा आम्ही या विषयावर बारकाईने नजर टाकू. पण आतासाठी, थोडा ब्रेक घेऊया."

"जे तू म्हणशील ते."