समझें कि जब आपकी स्क्रीन पर कोई वेब पेज दिखता है, तब कौन किससे क्या माँगता है।
इस पाठ को Kodokon में खोलेंकिसी रेस्टोरेंट की कल्पना कीजिए। आप बैठते हैं, वेटर को बुलाते हैं, कोई व्यंजन ऑर्डर करते हैं, और वेटर उसे आपके पास ले आता है। वेब बिल्कुल इसी तरह काम करता है। आप, अपने ब्राउज़र के साथ, क्लाइंट हैं: माँगने वाले आप हैं। दूसरी तरफ़ एक सर्वर होता है: चौबीसों घंटे चालू रहने वाला एक कंप्यूटर, कहीं किसी वातानुकूलित इमारत में, जिसका इकलौता काम अनुरोधों का इंतज़ार करना और उनका जवाब देना है। सर्वर में जादुई कुछ भी नहीं है: यह आपकी मशीन जैसी ही एक मशीन है, बस यह कभी सोती नहीं और इसमें कोई स्क्रीन नहीं होती।
सबसे ज़रूरी बात याद रखने लायक: सर्वर कभी पहल नहीं करता। जब तक आप कुछ माँगते नहीं, वह आपको कुछ भी नहीं भेजता। हर बार जब आप कोई पता टाइप करते हैं या किसी लिंक पर क्लिक करते हैं, आपका ब्राउज़र एक अनुरोध भेजता है, और सर्वर एक प्रतिक्रिया वापस भेजता है। अनुरोध, प्रतिक्रिया। अनुरोध, प्रतिक्रिया। पूरा वेब इसी आवाजाही में सिमट जाता है।
किसी अनुरोध को अपनी मंज़िल तक पहुँचने के लिए, हर जुड़ी हुई मशीन के पास एक IP पता होता है: संख्याओं की एक शृंखला जो डाक-पते की भूमिका निभाती है, उदाहरण के लिए 93.184.215.14। आपका संदेश एक ही टुकड़े में नहीं भेजा जाता: इसे पैकेट कहे जाने वाले छोटे-छोटे हिस्सों में काट दिया जाता है, जो दर्जनों बीच की मशीनों से होकर अपने-अपने रास्ते सफ़र करते हैं, और पहुँचने पर सही क्रम में दोबारा जोड़ दिए जाते हैं। आप ping कमांड से जाँच सकते हैं कि कोई मशीन जवाब देती है या नहीं।
ping -c 2 example.com
PING example.com (23.215.0.136): 56 data bytes
64 bytes from 23.215.0.136: icmp_seq=0 ttl=54 time=17.3 ms
64 bytes from 23.215.0.136: icmp_seq=1 ttl=54 time=16.9 ms
--- example.com ping statistics ---
2 packets transmitted, 2 packets received, 0.0% packet lossऔर सर्वर वापस भेजता क्या है? टेक्स्ट। एक वेब पेज HTML में लिखी एक टेक्स्ट फ़ाइल के अलावा कुछ भी नहीं है, जिसे सर्वर आपके पास भेजता है और आपका ब्राउज़र सजाकर दिखाता है। आप इसे बिना ब्राउज़र के, अपनी आँखों से curl टूल की मदद से देख सकते हैं, जो एक अनुरोध भेजता है और कच्ची प्रतिक्रिया टर्मिनल में छाप देता है।
curl -s https://example.com | head -n 5
<!doctype html>
<html>
<head>
<title>Example Domain</title>
<meta charset="utf-8" />