توی این جلسه میخوایم با پروتکل http آشنا بشیم.
اولین سوال: پروتکل چیه؟
در معنای عام، پروتکل به معنای مجموعهای از قوانین، الگوها و رویههای تعریف شده اس، که برای انجام یک فرآیند خاص یا برقراری یک ارتباط مشخص استفاده میشه.
برای مثال، پروتکلهایی مثل پروتکلهای مذاکره بین دو نفر،پروتکلهای پزشکی و…
توی این معنای گسترده، پروتکل به یک روش مشخص برای انجام یک فرآیند خاص اشاره داره، که میتونه با توجه به حوزهی مورد نظر، مفاهیم مختلفی رو شامل بشه.
توی بحث http ، پروتکل بازهم مجموعهای از قوانین، الگوها و رویه های تعریف شده اس. که برای تعامل و ارتباط بین دو یا چند دستگاه توی شبکه رعایت میشه. در واقع پروتکل به عنوان یک زبان مشترک بین دستگاههای مختلف شبکه عمل میکنه و کاربردش در تعامل و ارتباط بین دستگاههای مختلف شبکه، برای ارسال و دریافت دادهها و برقراری ارتباط از یک دستگاه به دیگه اس.
پروتکل http اولین بار سال 1991 معرفی شده. یه تیمی از محقق ها دنبال راهی برای به اشتراک گذاشتن اطلاعات بین دستگاه های مختلف بودن که در نهایت پروتکل http رو ساختن.
البته پروتکل های قدیمی تر از http هم داریم. مثل FTP که برای انتقال اطلاعات از یک دستگاه به دستگاه دیگه اس. یا پروتکل SMTP که برای ارسال ایمیل استفاده میشده.
HTTP مخفف عبارت Hypertext Transfer Protocol عه. به Hypertext ابرمتن هم میگن. یعنی فراتر از متن. که شامل عکس و صوت و ویدئو هم میشه. این پروتکل توی لایه اپلیکیشن مدل OSI عه.
زیاد وارد جزییات نمیشم. فقط یه عکس از مدل osi با هم ببینیم:
همونطوری که مشخصه http توی لایه ۷ یا لایه application عه که لایه کاربرد هم بهش میگن.
نکته مهمی که لازمه بدونیم اینه که این لایه ها مفهومی هستن. یعنی واقعا ۷ لایه وجود نداره. فقط برای درک بیشتره که لایه بندی کردن. مثلا میگن دیتایی که توی لایه کاربرد یا همون اپلیکیشن هست. در مرحله بعدی به لایه ارائه یا پریزنتیشن میره و مثلا با mp3 فشرده سازی میشه. بعد میره لایه بعدی اتفاقهای دیگه میافته تا در نهایت با لایه فیزیکال ارسال میشه و سمت مقابل همین مسیر رو از لایه ۱ تا ۷ میره تا به لایه اپلیکیشن برسه.
پروتکل http یک پروتکل کلاینت-سرور عه. توی یه ارتباط HTTP، کلاینت، درخواست خودش رو به سرور ارسال میکنه و بعدش سرور پاسخ خودش رو به کلاینت ارسال میکنه. سرور هم یک کامپیوتر همیشه روشنه که منتظر دریافت این درخواست هاس. و معمولا هم کامپیوتر قدرتمندیه.
خب تا اینجا خیلی خلاصه فهمیدیم http چیه.
سوال بعدی: وقتی ما آدرس یه سایت رو توی address bar مرورگرمون وارد میکنیم و enter می زنیم چی میشه؟
خیلی خلاصه اینو جواب میدیم.
بعد از وارد کردن آدرس و Enter زدن.
یه پکت DNS query ارسال میشه تا آدرس IP سایت مورد نظر پیدا بشه.
DNS هم یه پروتکل توی لایه اپلیکیشنه. که مخفف عبارت Domain Name System عه . پروتکل DNS برای ترجمه نام های دامنه به آدرس IP استفاده می شه. هر سایتی که روی اینترنت قرار داره، یک آدرس IP یکتا داره که توسط دستگاه های شبکه برای ارسال و دریافت داده ها استفاده می شه. اما کاربرا به جای وارد کردن آدرس IP، از نام دامنه استفاده می کنند مثلا مینویسن گوگل دات کام. آی پی اش رو که نمی نویسن.پس DNS نام دامنه را به آدرس IP متناظرش ترجمه میکنه.
DNS رو مثل یک دفترچه تلفن برای اینترنت می تونیم در نظر بگیریم. همانطوری که در دفترچه تلفن شما نام و شماره تلفن افراد مختلف را ذخیره میکنید، در DNS نام دامنه و آدرس IP متناظر آن ذخیره میشود.
پس آدرس IP سروری که سایت مورد نظر مارو راه اندازی کرد با DNS مشخص شد.
مرحله بعدی مرورگر یک اتصال TCP برقرار میکنه.
TCP یا Transmission Control Protocol هم یه پروتکل عه که توی لایه Transport (لایه چهارم) عه.
این پروتکل برای برقراری ارتباطات بین دو دستگاه در شبکه و برای تضمین اینکه دادهها به درستی انتقال پیدا کنن، استفاده میشه. یعنی این پروتکل مطمئن میشه که تمامی دادهها به درستی به مقصد مورد نظر ارسال بشن و در صورت بروز خطا، دوباره به صورت خودکار ارسال میشن.
و مرحله بعدی HTTP Request ما میرسه دست سرور
توی سرور هم یه وب سرور هست که بر حسب درخواستی که اومده. اپلیکیشن مورد نظرش رو صدا میزنه (این اپلیکیشن ممکنه هر زبان برنامه نویسی ایی باشه یا پروژه جنگو باشه)
و اپ یه صفحه وب میسازه و به سرور میده.
سرور هم صفحه وب رو به مرورگر ارسال میکنه.
بعد از دریافت اطلاعات، مرورگر شروع به پردازش و نمایش صفحه وب میکنه.