- بیایید کمی در مورد شبکه صحبت کنیم.
- بیایید ساختار مشتری-سرور و معماری سه سطحی را در نظر بگیریم.
- بیایید به پروتکل های HTTP/HTTPS نگاه کنیم.
- بیایید همه چیزهایی را که باید در مورد Maven بدانید بیاموزیم.
- بیایید در مورد سرولت ها صحبت کنیم.
- ظروف سرولت
- و در نهایت - در مورد MVC.
قسمت 1. بیایید کمی در مورد شبکه صحبت کنیم
بیایید با مهمترین چیز شروع کنیم و در مورد مبنایی صحبت کنیم که همه شبکه های اجتماعی، خدمات وب و برنامه های کاربردی، پیام رسان های فوری و سایت های ساده بر اساس آن ساخته شده اند - در مورد شبکه ( در زمینه این سری مقالات، اصطلاح "شبکه" به معنای اینترنت جهانی ). یک شبکه از تعداد زیادی کامپیوتر تشکیل شده است: آنها به هم متصل هستند و قادر به برقراری ارتباط هستند. درک نحوه انجام این کار بسیار مهم است، زیرا برنامه های کاربردی وب مسئول انتقال اطلاعات از یک کامپیوتر به کامپیوتر دیگر هستند.مدل شبکه OSI
مدل OSI (Open Systems Interconnection) یک رویکرد لایه ای برای ساخت شبکه ایجاد می کند. این به وضوح نشان می دهد که چگونه و در چه سطحی اعضای یک شبکه می توانند با یکدیگر تعامل داشته باشند. در مجموع، این مدل شامل 7 سطح است:7 | کاربردی |
6 | نمایندگی |
5 | جلسه |
4 | حمل و نقل |
3 | شبکه |
2 | مجرا |
1 | فیزیکی |
-
1. سطح فیزیکی - در اینجا قوانین فیزیک کار خود را انجام می دهند و وظیفه انسان استفاده و هدایت آن برای اهداف خود است. به عنوان مثال، ایجاد کابل ها و قرار دادن آنها برای اعضای شبکه.
ما علاقه ای نداریم.
-
لایه پیوند داده - مسئول انتقال داده ها به گره های شبکه و ایجاد کانال های انتقال داده بر روی اشیاء فیزیکی است.
Нам не интересен, если только нет желания писать прошивку для каналообразующей аппаратуры.
-
Сетевой уровень — для определения addressов отдельных пользователей сети и маршрутов к ним. На этом уровне стоит остановиться подробнее, а именно — на addressе пользователя в сети.
Он определяется специальным протоколом: самый распространённый — IPv4 (Internet Protocol version 4). Именно его нужно использовать веб-программисту для обращения к другому абоненту сети.
IPv4 состоит из четырех byteовых значений, разделенных точкой, например: 192.0.2.235. Стоит помнить, что значения byteовые, а значит, они лежат в пределах 0..255.
IP-address, в свою очередь, делятся на классы, и просто так присвоить себе красивую комбинацию циферок не получится, но так сильно углубляться мы не станем. Достаточно понимать, что IP-address — это уникальный идентификатор абонента в сети, по которому мы сможем к нему обратиться.
-
Транспортный уровень — занимается доставкой информации addressту. Для этого используются разные протоколы, которые нам пока не интересны. Гораздо больше нас интересует понятие, которое появляется на этом уровне, — port.
Порты отвечают за идентификацию конкретного applications на компьютере. Например, ты написал чат на Java, установил на 2 компа и хочешь отправить своему собеседнику. Твое сообщение упаковывается, отправляется по конкретному IP-addressу, доставляется твоему собеседнику, но его ПК не знает, что делать с полученной информацией, так How не понимает, Howое приложение должно обработать твое сообщение. Для этого и указываются порты при общении абонентов в сети.
Порт представляет собой число от 0 до 65535. Он добавляется к IP-addressу после двоеточия: 192.0.2.235:8080. Но нельзя использовать все порты из указанного диапазона: часть из них зарезервирована под операционную систему, еще часть принято использовать с конкретно оговоренной целью. В преднаmeaning разных портов углубляться не будем, пока достаточно понимать их роль в процессе общения в сети.
-
Сеансовый уровень — создает и управляет сеансами связи приложений. На этом уровне становится возможным взаимодействие приложений, отправка requestов служебного уровня. Для нас важно знать, что на этом уровне между двумя абонентами открывается сессия (session), с которой нам часто придется работать.
Сессия — сущность, которая создается при установке связи между двумя пользователями. В ней можно сохранять нужную нам информацию о юзере, об истории их взаимодействия. Важной деталью является то, что при остановке обмена информацией сессия не пропадает, а сохраняет свое состояние на протяжении установленного промежутка времени, поэтому пользователи могут продолжить обмен информацией после перерыва.
اگر یک برنامه به طور همزمان با چندین کاربر ارتباط برقرار کند، تعداد مناسبی از اتصالات و در نتیجه جلسات برقرار می شود. هر جلسه دارای یک شناسه (ID) منحصر به فرد است که به برنامه اجازه می دهد بین کاربرانی که با آنها ارتباط برقرار می شود تمایز قائل شود.
-
لایه ارائه - مسئول رمزگذاری / رمزگشایی داده ها است. بدیهی است که اگر بخواهیم رشته «Hello web» را برای کاربر دیگری ارسال کنیم، ابتدا به کد باینری تبدیل میشود (کد میشود) و سپس ارسال میشود. پس از رسیدن به مقصد، پیام به عقب تبدیل (رمزگشایی) می شود و گیرنده می تواند رشته اصلی را ببیند. این اقدامات در سطح ارائه رخ می دهد.
-
لایه اپلیکیشن برای ما جالب ترین لایه است. به برنامه ها اجازه می دهد تا با شبکه تعامل داشته باشند. در این سطح ما پیام ها را دریافت می کنیم، برای سرویس ها و پایگاه های داده راه دور درخواست می کنیم.
پروتکل های زیادی در این سطح استفاده می شوند: POP3، FTP، SMTP، XMPP، RDP، SIP، TELNET و البته HTTP/HTTPS. پروتکل یک توافق جهانی است که ما هنگام نوشتن پیام به آن پایبند هستیم. قطعا در مورد پروتکل های HTTP/HTTPS به صورت جداگانه و با جزئیات بیشتر صحبت خواهیم کرد.
- آدرس IP - آدرس مشترک در شبکه؛
- بندر - آدرس برنامه یک مشترک خاص؛
- Session موجودیتی است که در کل ارتباط بین دو مشترک وجود دارد.
- پروتکل های کاربردی (HTTP/HTTPS) قوانینی هستند که ما را در هنگام نوشتن و ارسال پیام راهنمایی می کنند.
GO TO FULL VERSION