
- Ще поговорим малко за работата в мрежа.
- Ще разгледаме клиент-сървър и трислойната архитектура.
- Ще проучим 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) — Това са правила, които ще следваме, когато съставяме и изпращаме съобщения.
DNS (система за имена на домейни)
Както вече научихме, всеки потребител на мрежата има уникален address. Ако говорим за приложението, тогава неговият уникален address ще бъде IPv4-address:порт . Ако знаете този address, можете директно да влезете в приложението. Представете си, че сме написали уеб приложение, което показва средната температура на въздуха във всички страни в реално време. Разположихме го на сървър с address 226.69.237.119, на порт 8080. За да може да получава информация от нас, потребителят трябва да въведе 5 числа в браузъра: 226.69.237.119:8080. Хората не обичат да запомнят набори от числа: много от нас не могат да запомнят повече от два телефонни номера. Ето защо системата за имена на домейнибеше изобретен. Можем да създадем „псевдоним“ за нашия address, например world-temperature.com. Вместо да ни търси по address, състоящ се от пет трудни за запомняне числа, потребителят може да въведе името на нашия домейн в addressната лента на браузъра. Има DNS сървъри , които картографират имената на домейни към реални addressи. Например, когато потребител въведе codegym.cc в браузър, нейната заявка се изпраща до DNS сървър, който я преобразува в действителния address.
GO TO FULL VERSION