پث‌وایز

اینترنت چطور کار می‌کنه (How the Internet Works) · درس ۱ از ۱۲ · ۱۲ دقیقه

وقتی یه سایت رو باز می‌کنی چه اتفاقی می‌افته

کل مسیر رو از تایپ کردن یه آدرس تا دیدن صفحه روی گوشیت دنبال کن، و با پنج کلمه‌ای که بقیه‌ی این دوره روشون سوار می‌شه آشنا شو: سرور، آدرس IP، دی‌ان‌اس، درخواست، بسته.

اون طرف ماجرا

یکی باید جواب بده

example.com فقط یه اسم معلق تو هوا نیست. یه کامپیوتره که یه‌جایی روشنه و منتظره آدم‌ها ازش صفحه بخوان. به این کامپیوتر می‌گن سرور (Server). گوشی تو همونیه که داره می‌پرسه؛ بهش می‌گن کلاینت (Client).

همیشه همین شکلیه: کلاینت یه درخواست (Request) می‌فرسته (بده صفحه رو بهم)، سرور هم یه جواب برمی‌گردونه (خود صفحه).

خودت رو امتحان کن

example.com رو تایپ می‌کنی و صفحه باز می‌شه. تو این مسیر، گوشیت چیه و کامپیوتری که صفحه روشه چیه؟

  1. گوشیت سرور و کامپیوتر صفحه کلاینته
  2. گوشیت کلاینت و کامپیوتر صفحه سروره
  3. هر دو سرورن، چون هر دو دیتا می‌فرستن
  4. هیچ‌کدوم؛ این اسم‌ها فقط برای روترهاست
جواب رو ببین

گوشیت کلاینت و کامپیوتر صفحه سروره

درسته. گوشیت می‌پرسه، پس کلاینته. کامپیوتری که صفحه روشه جواب می‌ده، پس سروره.

برای کامپیوتر، اسم هیچ معنی‌ای نداره

شماره‌ی یه دوست رو زیر اسمش سیو می‌کنی و گوشیت رقم‌هاش رو یادش می‌مونه. اینترنت هم همین شکلیه: example.com یه اسمه برای آدم‌ها، ولی کامپیوترها همه‌چیز رو با یه شماره پیدا می‌کنن، یه آدرس IP. یه‌جایی باید اون لیستی رو نگه داره که این دوتا رو بهم وصل می‌کنه؛ این کار دی‌ان‌اس (DNS)ه. جایی که این تشبیه جواب نمی‌ده: لیست مخاطبین تو فقط دوستای خودته، ولی DNS آدرس کل اینترنت رو داره و تقریباً هر کسی می‌تونه ازش بپرسه.

خودت رو امتحان کن

کامپیوترها اصلاً از example.com برای پیدا کردن سرور استفاده نمی‌کنن؛ از یه آدرس IP عددی استفاده می‌کنن، و DNS همونیه که اسم رو تبدیل به اون عدد می‌کنه.

جواب رو ببین

درست

درسته. example.com برای اینه که آدم‌ها تایپ و حفظش کنن. کامپیوترها برای وصل شدن یه عدد لازم دارن، یه آدرس IP؛ و DNS همون جست‌وجوییه که اون عدد رو بهشون می‌ده.

قدم‌به‌قدم ببین

  1. قبل از این‌که هیچی شروع بشه

    تازه example.com رو تو نوار آدرس تایپ کردی. هنوز هیچی حرکت نکرده: گوشی فقط یه اسم داره، نه یه جا. DNS و سرور کم‌رنگ کشیده شدن چون هنوز هیچ‌کدوم خبر نشدن.

  2. اسم تبدیل به آدرس می‌شه

    گوشیت از DNS درباره‌ی example.com می‌پرسه، و پیکان‌های بنفش نشون می‌دن سؤال داره بالا می‌ره و جواب داره برمی‌گرده: 203.0.113.5. این همون آدرس عددیه که بقیه‌ی این مسیر واقعاً باهاش کار می‌کنه.

  3. گوشیت وصل می‌شه و صفحه رو می‌خواد

    حالا که آدرس رو داری، پیکان آبی مستقیم از گوشیت می‌ره سمت سرور همون آدرس، بدون این‌که دوباره سراغ DNS بره. برچسب GET / خودِ درخواسته: صفحه رو بده بهم.

  4. صفحه تیکه‌تیکه می‌رسه و کشیده می‌شه

    نقطه‌های نارنجی تیکه‌های کوچیک صفحه‌ان که یکی‌یکی از سرور به سمت گوشیت میان. همین‌طور که می‌رسن، صفحه‌ی گوشیت خط‌به‌خط پر می‌شه، نه این‌که منتظر بمونه کل صفحه یه‌جا برسه.

خودت رو امتحان کن

با نگاه به تصویرها: DNS واقعاً با کدوم دو تا رد و بدل پیام می‌کنه؟

  1. گوشی و سرور، مستقیم، و DNS فقط تماشا می‌کنه
  2. فقط سرور و DNS؛ گوشیت بیرون این مرحله می‌مونه
  3. فقط گوشی و خود DNS؛ سرور تو این تبادل نیست
  4. هر سه‌تا با هم، تو یه رفت‌وبرگشت
جواب رو ببین

فقط گوشی و خود DNS؛ سرور تو این تبادل نیست

درسته. تو مرحله‌ی ۱، پیکان‌ها فقط گوشی و DNS رو به هم وصل می‌کنن: گوشی می‌پرسه، DNS با 203.0.113.5 جواب می‌ده. سرور تو این تبادل نیست.

تیکه‌تیکه

صفحه یه‌جا نمی‌رسه

وقتی گوشیت آدرس رو داره و صفحه رو خواسته، سرور کل صفحه رو تو یه تیکه نمی‌فرسته. صفحه به قطعه‌های کوچیکی به اسم بسته (Packet) خرد می‌شه، هر کدوم جدا فرستاده می‌شه و گوشیت همین‌طور که می‌رسن کنار هم می‌ذارتشون. برای همینه که می‌تونی ببینی صفحه از بالا به پایین کم‌کم پر می‌شه، نه این‌که یهو کامل ظاهر بشه.

به‌زودی یه درس کامل درباره‌ی بسته‌ها می‌خونی؛ فعلاً فقط بدون «رسیدن صفحه» یعنی «رسیدن خیلی بسته‌ی کوچیک، به‌ترتیب».

خودت رو امتحان کن

هر کدوم رو به چیزی که واقعاً هست وصل کن

  • سرور example.com
  • گوشیت (کلاینت)
  • 203.0.113.5
  • دی‌ان‌اس، سرویس جست‌وجو
  • GET /، درخواست صفحه
جواب رو ببین

یه کامپیوتره: سرور example.com, گوشیت (کلاینت)

کامپیوتر نیست (عدد، سرویس جست‌وجو، یا پیام): 203.0.113.5, دی‌ان‌اس، سرویس جست‌وجو, GET /، درخواست صفحه

خودت رو امتحان کن

  1. تایپ کردن example.com تو نوار آدرس همون صفحه رو باز می‌کنه.
  2. تایپ کردن 203.0.113.5 تو نوار آدرس هم دقیقاً همون صفحه رو باز می‌کنه.

هر دو کار می‌کنن و یه صفحه رو باز می‌کنن. این چی درباره‌ی چیزی که مرورگر واقعاً برای وصل شدن لازم داره بهت می‌گه؟

  1. به اسم نیاز داره؛ عدد فقط یه پشتیبانه
  2. به آدرس IP عددی نیاز داره؛ اسم فقط یه راحتیه که DNS تبدیلش می‌کنه بهش
  3. به هر دوتا با هم نیاز داره، وگرنه وصل نمی‌شه
  4. به هیچ‌کدوم نیاز نداره؛ مرورگر از روی موقعیت مکانیت سرور رو حدس می‌زنه
جواب رو ببین

به آدرس IP عددی نیاز داره؛ اسم فقط یه راحتیه که DNS تبدیلش می‌کنه بهش

دقیقاً. هدف واقعی مرورگر همیشه آدرس IPه. تایپ کردن اسم فقط یه قدم DNS جلوش اضافه می‌کنه؛ تایپ کردن عدد اون قدم رو رد می‌کنه چون خودت دادیش.

مرور درس

  • گوشیت (کلاینت) می‌پرسه؛ کامپیوتر example.com (سرور) با صفحه جواب می‌ده.
  • DNS اسم example.com رو تبدیل می‌کنه به یه آدرس IP عددی، 203.0.113.5، که کامپیوترها واقعاً می‌تونن باهاش وصل بشن.
  • وقتی گوشیت اون آدرس رو داشته باشه، به سرور وصل می‌شه و یه درخواست می‌فرسته: GET /.
  • صفحه تو تیکه‌های کوچیک به اسم بسته میاد، نه یه‌جا؛ برای همین می‌تونی ببینی داره کم‌کم پر می‌شه.

فقط نخونش، نگهش دار

پث‌وایز هر ایده رو درست قبل از اینکه فراموشش کنی با یه سؤال کوتاه برمی‌گردونه. رایگان روی اندروید و وب، به فارسی و انگلیسی.

Cafe Bazaar Myket باز کردن نسخه‌ی وب

همه‌ی درس‌های این دوره

  1. وقتی یه سایت رو باز می‌کنی چه اتفاقی می‌افته
  2. آدرس‌ها: یه دستگاه چطوری پیدا می‌شه
  3. بسته‌ها: پیام رو تیکه‌تیکه کردن
  4. DNS: دفترچه تلفن اینترنت
  5. روترها: یه راه پیدا می‌کنن، بعد یه راه دیگه
  6. TCP: مطمئن شدن از رسیدن همه‌چی
  7. HTTP: چطور یه صفحه رو می‌خوای و جواب می‌گیری
  8. HTTPS: قفل کنار آدرس دقیقاً چی رو محافظت می‌کنه
  9. کش و CDN: چرا بار دومی که یه سایت رو باز می‌کنی سریع‌تره
  10. وایفای، کابل و کف دریا
  11. چرا کند حس می‌شه: تأخیر و پهنای باند
  12. امن موندن: سایت‌های شبیه‌سازی‌شده و قدم دوم