- Ще поговорим малко за работата в мрежа.
- Ще разгледаме клиент-сървър и трислойната архитектура.
- Ще проучим HTTP/HTTPS протоколите.
- Ще научим всичко, което трябва да знаете за Maven.
- Говорим за дърводобив.
- Относно контейнерите за сервлети.
- И накрая, за MVC.
Част 1. Ще поговорим малко за работата в мрежа.
Нека започнем с това, което е най-важно, като говорим върху Howво е изградена всяка социална мрежа, уеб услуга и уеб приложение, месинджър и прост уебсайт — мрежата (в контекста на тази поредица от статии терминът „мрежа“ означава интернет ) . Мрежата се състои от огромен брой компютри: те са свързани помежду си и могат да комуникират. Важно е да разберете How правят това, тъй като уеб applicationsта изпращат информация от един компютър на друг.OSI модел
Моделът за свързване на отворени системи (OSI) създава многослоен подход за изграждане на мрежа. Той ясно показва How и на Howъв слой обектите от една и съща мрежа могат да взаимодействат помежду си. Общо този модел съдържа 7 слоя:7 | Приложение |
6 | Презентация |
5 | Сесия |
4 | транспорт |
3 | мрежа |
2 | Връзка за данни |
1 | Физически |
-
Физически слой — Този слой се занимава със законите на физиката и How да ги използваме за нашите цели. Например създаване на кабели и полагането им към обекти в мрежата.
Този слой не ни интересува.
-
Слой на връзката за данни — Този слой е отговорен за предаването на данни към мрежовите възли и създаването на канали за предаване на данни за физически обекти.
Този слой не ни интересува, освен ако не искате да напишете фърмуер за хардуера, който установява връзки за данни.
-
Мрежов слой — Този слой е за определяне на addressите на отделните мрежови потребители и маршрутите до тях. Има смисъл да научите повече за подробностите на този слой, а именно мрежовите addressи.
Мрежовите addressи се определят от специален протокол: най-често срещаният е IPv4 (интернет протокол version 4). Това е протоколът, който уеб програмистът трябва да използва, за да се свърже с друг мрежов потребител.
IPv4 addressът се състои от четири byteови стойности, разделени с точки, например: 192.0.2.235. Трябва да запомните, че тези стойности са byteове, което означава, че са в диапазона 0..255.
IP addressите от своя страна са разделени на класове. Не можем просто да си зададем красива комбинация от числа, но няма да навлизаме много надълбоко тук. Достатъчно е да разберете, че IP addressът идентифицира уникално мрежов потребител и може да се използва за връзка с този потребител.
-
Транспортен слой — Този слой управлява доставянето на информация до addressт. За да се постигне това, се използват различни протоколи. Засега не се интересуваме от тях. Много повече се интересуваме от концепцията за порт , която се появява на този слой.
Портовете са отговорни за идентифицирането на конкретно приложение на компютър. Да предположим например, че пишете приложение за чат на Java, инсталирате го на 2 компютъра и искате да изпратите съобщение до вашия приятел. Вашето съобщение е пакетирано, изпратено до определен IP address и доставено на вашия приятел, но неговият компютър не знае Howво да прави с получената информация, защото не разбира кое приложение трябва да обработи вашето съобщение. Когато мрежовите обекти комуникират, портовете се използват, за да се посочи кое приложение трябва да обработва информацията.
Портът е число в диапазона от 0 до 65535. Той се добавя към IP address след двоеточие: 192.0.2.235:8080 . Но не можете да използвате всички портове в посочения диапазон: някои от тях са запазени за операционната система, други обикновено се използват за конкретни цели. Няма да се задълбочаваме в целите на различните портове. Засега е достатъчно да разберем тяхната роля в процеса на комуникация в мрежата.
-
Сесиен слой — Този слой създава и управлява комуникационни сесии. На този слой става възможно applicationsта да взаимодействат, изпращайки заявки на ниво услуга. Това, което трябва да знаем е, че на този слой се отваря сесия между двама потребители и ние трябва да работим със сесията.
Сесията е обект, създаден , когато се установи връзка между двама потребители. Може да съхранява необходимата информация за потребителя и за историята на взаимодействието с потребителя. Важна подробност е, че при спиране на обмена на информация сесията не изчезва. Вместо това той запазва състоянието си за определен период от време, така че потребителите могат да продължат да обменят информация след прекъсване.
Ако едно приложение комуникира с няколко потребители едновременно, тогава се установяват съответен брой връзки (и следователно сесии). Всяка сесия има уникален идентификатор (ID) , който позволява на приложението да прави разлика между потребителите, с които комуникира.
-
Презентационен слой — Този слой отговаря за codeирането/деcodeирането на данни. Очевидно, ако трябва да изпратим низа "Hello web" на друг потребител, той първо се преобразува в (codeиран като) двоичен code и едва след това се изпраща. При достигане до получателя съобщението се конвертира обратно (деcodeира) и получателят може да види оригиналния низ. Тези действия се извършват на презентационния слой.
-
Приложният слой е най-интересният слой за нас. Той позволява на applicationsта да комуникират с мрежата. На този слой получаваме и изпращаме съобщения и правим заявки към услуги и отдалечени бази данни.
Има много протоколи, използвани на този слой: POP3, FTP, SMTP, XMPP, RDP, SIP, TELNET и, разбира се, HTTP/HTTPS. Протоколът е универсално споразумение, към което се придържаме, когато общуваме. Определено ще предоставим отделно подробно обсъждане на HTTP/HTTPS.
- IP address — Адресът на потребителя в мрежата
- Порт — Адресът на конкретно потребителско приложение
- Сесия — Обект, който съществува през целия период на комуникация между двама потребители
- Протоколи за applications (HTTP/HTTPS) — Това са правила, които ще следваме, когато съставяме и изпращаме съобщения.
GO TO FULL VERSION