
- ما کمی در مورد شبکه صحبت خواهیم کرد.
- ما معماری مشتری-سرور و سه لایه را بررسی خواهیم کرد.
- ما پروتکل های HTTP/HTTPS را بررسی خواهیم کرد.
- ما هر آنچه را که باید در مورد Maven بدانید را یاد خواهیم گرفت.
- ما در مورد ورود به سیستم صحبت می کنیم.
- درباره ظروف سرولت
- و در نهایت، در مورد MVC.
قسمت 1. کمی در مورد شبکه صحبت خواهیم کرد.
بیایید با آنچه که بیشترین اهمیت را دارد با صحبت در مورد آنچه که هر شبکه اجتماعی، وب سرویس و برنامه وب، پیام رسان فوری و وب سایت ساده بر روی آن ساخته شده است شروع کنیم (در زمینه این سری مقالات، اصطلاح "شبکه" به معنای اینترنت است ) . شبکه از تعداد زیادی کامپیوتر تشکیل شده است: آنها به هم متصل هستند و قادر به برقراری ارتباط هستند. درک نحوه انجام این کار بسیار مهم است، زیرا برنامه های کاربردی وب اطلاعات را از یک رایانه به رایانه دیگر ارسال می کنند.مدل OSI
مدل اتصال سیستم های باز (OSI) رویکردی چند لایه برای ساخت شبکه ایجاد می کند. این به وضوح نشان می دهد که چگونه و در چه لایه ای موجودیت های یک شبکه می توانند با یکدیگر تعامل داشته باشند. در کل، این مدل شامل 7 لایه است:7 | کاربرد |
6 | ارائه |
5 | جلسه |
4 | حمل و نقل |
3 | شبکه |
2 | لینک اطلاعات |
1 | فیزیکی |
-
لایه فیزیکی - این لایه با قوانین فیزیک و نحوه استفاده از آنها برای اهدافمان سروکار دارد. به عنوان مثال، ایجاد کابل ها و قرار دادن آنها برای موجودیت های موجود در شبکه.
این لایه به ما علاقه ای ندارد.
-
لایه پیوند داده - این لایه وظیفه انتقال داده ها به گره های شبکه و ایجاد کانال های انتقال داده برای اشیاء فیزیکی را بر عهده دارد.
این لایه به ما علاقه ای ندارد مگر اینکه بخواهید برای سخت افزاری که پیوندهای داده را ایجاد می کند، سفت افزار بنویسید.
-
لایه شبکه - این لایه برای تعیین آدرس تک تک کاربران شبکه و مسیرهای رسیدن به آنها است. یادگیری بیشتر در مورد جزئیات این لایه، یعنی آدرس های شبکه، ارزش دارد.
آدرس های شبکه توسط یک پروتکل خاص تعریف می شوند: رایج ترین آنها IPv4 (پروتکل اینترنت نسخه 4) است. این پروتکلی است که یک برنامه نویس وب برای تماس با کاربر شبکه دیگر باید از آن استفاده کند.
یک آدرس IPv4 شامل چهار مقدار بایت است که با نقطه از هم جدا شده اند، به عنوان مثال: 192.0.2.235. باید به یاد داشته باشید که این مقادیر بایت هستند، به این معنی که در محدوده 0..255 قرار دارند.
آدرس های IP به نوبه خود به کلاس ها تقسیم می شوند. ما نمی توانیم به سادگی ترکیب زیبایی از اعداد را به خود اختصاص دهیم، اما در اینجا خیلی عمیق نمی شویم. درک این نکته کافی است که یک آدرس IP به طور منحصر به فرد یک کاربر شبکه را شناسایی می کند و می تواند برای تماس با آن کاربر استفاده شود.
-
لایه انتقال - این لایه تحویل اطلاعات به مخاطب را انجام می دهد. برای انجام این کار از پروتکل های مختلفی استفاده می شود. در حال حاضر ما به آنها علاقه ای نداریم. ما بیشتر به مفهوم پورت علاقه مندیم که در این لایه ظاهر می شود.
پورت ها مسئول شناسایی یک برنامه خاص در رایانه هستند. به عنوان مثال، فرض کنید یک برنامه چت در جاوا می نویسید، آن را روی 2 کامپیوتر نصب می کنید و می خواهید برای دوست خود پیامی ارسال کنید. پیام شما بستهبندی میشود، به یک آدرس IP خاص ارسال میشود و به دوست شما تحویل داده میشود، اما رایانه او نمیداند با اطلاعات دریافتی چه کند، زیرا نمیداند کدام برنامه باید پیام شما را پردازش کند. هنگامی که موجودیت های شبکه ارتباط برقرار می کنند، از پورت ها برای نشان دادن اینکه کدام برنامه باید اطلاعات را پردازش کند استفاده می شود.
پورت عددی در محدوده 0 تا 65535 است. پس از کولون به آدرس IP اضافه می شود: 192.0.2.235:8080 . اما نمی توانید از همه پورت ها در محدوده مشخص شده استفاده کنید: برخی از آنها برای سیستم عامل رزرو شده اند، برخی دیگر معمولاً برای اهداف خاصی استفاده می شوند. ما به اهداف پورت های مختلف نخواهیم پرداخت. در حال حاضر کافی است نقش آنها را در فرآیند ارتباط در شبکه درک کنیم.
-
لایه جلسه - این لایه جلسات ارتباطی را ایجاد و مدیریت می کند. در این لایه، امکان تعامل برنامهها و ارسال درخواستهای سطح سرویس وجود دارد. چیزی که باید بدانیم این است که در این لایه یک جلسه بین دو کاربر باز می شود و ما باید با جلسه کار کنیم.
Session موجودیتی است که هنگام برقراری ارتباط بین دو کاربر ایجاد می شود. این می تواند اطلاعات لازم در مورد یک کاربر و تاریخچه تعامل با کاربر را ذخیره کند. یک جزئیات مهم این است که وقتی تبادل اطلاعات متوقف می شود، جلسه ناپدید نمی شود. در عوض، وضعیت خود را برای مدت زمان مشخصی حفظ می کند، بنابراین کاربران می توانند پس از یک وقفه به تبادل اطلاعات ادامه دهند.
اگر یک برنامه همزمان با چندین کاربر در ارتباط باشد، تعداد مربوط به اتصالات (و در نتیجه جلسات) برقرار می شود. هر جلسه دارای یک شناسه (ID) منحصر به فرد است که به برنامه اجازه می دهد بین کاربرانی که با آنها در ارتباط است تمایز قائل شود.
-
لایه ارائه - این لایه مسئول رمزگذاری/رمزگشایی داده ها است. بدیهی است که اگر بخواهیم رشته "Hello web" را برای کاربر دیگری ارسال کنیم، ابتدا به کد باینری (کدگذاری شده) تبدیل می شود و تنها پس از آن ارسال می شود. پس از رسیدن به گیرنده، پیام به عقب تبدیل می شود (رمزگشایی می شود)، و گیرنده می تواند رشته اصلی را ببیند. این اقدامات در لایه ارائه انجام می شود.
-
لایه برنامه جالب ترین لایه برای ما است. به برنامه ها اجازه می دهد تا با شبکه ارتباط برقرار کنند. در این لایه، ما پیامها را دریافت و ارسال میکنیم، و درخواستهایی را به سرویسها و پایگاههای داده راه دور میدهیم.
پروتکل های زیادی در این لایه استفاده می شود: POP3، FTP، SMTP، XMPP، RDP، SIP، TELNET و البته HTTP/HTTPS. پروتکل یک توافق جهانی است که ما هنگام برقراری ارتباط به آن پایبند هستیم. ما قطعاً یک بحث مفصل جداگانه در مورد HTTP/HTTPS ارائه خواهیم کرد.

- آدرس IP - آدرس کاربر در شبکه
- پورت - آدرس برنامه یک کاربر خاص
- Session - موجودی است که در طول دوره ارتباط بین دو کاربر وجود دارد
- پروتکل های کاربردی (HTTP/HTTPS) - اینها قوانینی هستند که هنگام نوشتن و ارسال پیام ها از آنها پیروی می کنیم.
DNS (سیستم نام دامنه)
همانطور که قبلاً آموختیم، هر کاربر شبکه یک آدرس منحصر به فرد دارد. اگر در مورد برنامه صحبت می کنیم، آدرس منحصر به فرد آن IPv4-address:port خواهد بود . اگر این آدرس را می دانید، می توانید مستقیماً به برنامه دسترسی داشته باشید. تصور کنید که ما یک برنامه وب نوشتیم که میانگین دمای هوای همه کشورها را به صورت بلادرنگ نمایش می دهد. ما آن را روی سروری با آدرس 226.69.237.119 در پورت 8080 مستقر کردیم. برای اینکه کاربر بتواند اطلاعاتی را از ما دریافت کند، باید 5 شماره را در مرورگر وارد کند: 226.69.237.119:8080. مردم دوست ندارند مجموعه ای از اعداد را حفظ کنند: بسیاری از ما نمی توانیم بیش از دو شماره تلفن را به خاطر بسپاریم. به همین دلیل سیستم نام دامنه اختراع شد. ما می توانیم برای آدرس خود یک "نام مستعار" ایجاد کنیم، برای مثال world-temperature.com. به جای اینکه به دنبال ما با استفاده از آدرسی متشکل از پنج شماره دشوار به خاطر سپردن، کاربر می تواند نام دامنه ما را در نوار آدرس مرورگر وارد کند. سرورهای DNS وجود دارند که نام دامنه را به آدرس های واقعی نگاشت می کنند. به عنوان مثال، هنگامی که یک کاربر codegym.cc را در یک مرورگر وارد می کند، درخواست او به یک سرور DNS ارسال می شود که آن را به آدرس واقعی تبدیل می کند.
GO TO FULL VERSION