JavaRush /Java блогу /Random-KY /1-бөлүк. Жазды жана JavaEEди үйрөнүүдөн мурун эмнени били...
Professor Hans Noodles
Деңгээл

1-бөлүк. Жазды жана JavaEEди үйрөнүүдөн мурун эмнени билишиңиз керек

Группада жарыяланган
Эгер сиз Java SE программасын окуп бүтүргөн болсоңуз же ага жакын болсоңуз, анда Java иштеп чыгуучу кесибин багындыруу үчүн кийинки кадамдар жөнүндө ойлонууга убакыт келди. 1-бөлүк. Жазды жана JavaEEди үйрөнүүдөн мурун эмнени бorшиңиз керек - 1Бир жагынан, сиз Java тorн жакшы түшүндүңүз: IDE менен кантип иштөөнү, программаларды жазууну жана башка көптөгөн нерселерди билесиз. Бирок алар менен, программалар менен мындан ары эмне кылышыбыз керек? Аларды кантип музdateу жана "дүйнөгө коё берүү" керек? Бул Enterprise технологияларды изилдөө баштоо үчүн убакыт келгени көрүнүп турат. Мына ушул жерден кызыктуу башталат. Кайсы технологиялык стектен баштоону чечкениңиз маанилүү эмес. JavaEE же Жаз болсун, сиз түшүнө албаган көптөгөн нерселерге туш болосуз. Java негиздери менен алдыңкы технологиялардын ортосунда дагы эле көлөмдүү documentтерди окууда өзүн-өзү башкаруунун жана өзүнө болгон ишенимдин калдыктарын жоготпоого жардам бере турган бorмдин орто деңгээли бар. Ошондуктан, макалалардын бул сериясынын максаты сизге JavaEE же Жазды андан ары изилдөө үчүн минималдуу зарыл теориялык бorмди берүү болуп саналат. Бардык материал 7 бөлүккө бөлүнөт:
  1. Тармак жөнүндө бир аз сүйлөшөлү.
  2. Келгиле, кардар-serverдин структурасын жана үч деңгээлдүү архитектураны карап көрөлү.
  3. Келгиле, HTTP/HTTPS протоколдорун карап көрөлү.
  4. Келиңиз, Maven жөнүндө бorшиңиз керек болгон нерселердин баарын билели.
  5. Келгиле, сервлеттер жөнүндө сүйлөшөлү.
  6. Сервлет контейнерлери.
  7. Акыр-аягы - MVC жөнүндө.

1-бөлүк. Тармак жөнүндө бир аз сүйлөшөлү

Эң негизги нерседен баштайлы жана бардык социалдык тармактар, веб-кызматтар жана тиркемелер, мессенджерлер жана жөнөкөй сайттар курулган негиз жөнүндө сүйлөшөлү - тармак жөнүндө ( макалалардын ушул сериясынын контекстинде "тармак" термини глобалдык интернет ). Тармак өтө көп сандагы компьютерлерден турат: алар бири-бири менен байланышкан жана байланышууга жөндөмдүү. Алардын муну кантип жасаарын түшүнүү маанилүү, анткени веб-тиркемелер так маалыматты бир компьютерден экинчисине өткөрүү үчүн жасайт.

OSI тармак модели

OSI (Open Systems Interconnection) модели тармакты курууда катмарлуу мамилени түзөт. Ал бир эле тармактын мүчөлөрү бири-бири менен кантип жана кандай деңгээлде өз ара аракеттене аларын ачык көрсөтүп турат. Жалпысынан, бул модель 7 баскычтарды камтыйт:
7 Колдонулган
6 Өкүлчүлүк
5 Сессия
4 Транспорт
3 Network
2 Канал
1 Физикалык
Абстракциялуу катмарларга бөлүү, мисалы, транспорттук катмарда иштеген адистерге тармак жана сеанс катмарларында тармакты ишке ашыруунун деталдары жөнүндө ойлонбоого мүмкүндүк берет. Бул ыкма программалоодо да колдонулат. Келгиле, OSI моделинин бардык катмарларын карап көрөлү жана алардын кайсынысы бизге кызыктуу экенин билели:
  1. 1. Физикалык деңгээл – бул жерде физиканын мыйзамдары өз милдетин аткарат, ал эми адамдын милдети – муну өз максатына пайдалануу жана багыттоо. Мисалы, кабелдерди түзүү жана аларды тармактын мүчөлөрүнө салуу.

    Биз кызыкдар эмеспиз.

  2. Берorштерди шилтеме катмары - тармак түйүндөрүнө маалыматтарды берүү жана физикалык an objectтерде маалыматтарды берүү каналдарын түзүү үчүн жооптуу.

    Нам не интересен, если только нет желания писать прошивку для каналообразующей аппаратуры.

  3. Сетевой уровень — для определения addressов отдельных пользователей сети и маршрутов к ним. На этом уровне стоит остановиться подробнее, а именно — на addressе пользователя в сети.

    Он определяется специальным протоколом: самый распространённый — IPv4 (Internet Protocol version 4). Именно его нужно использовать веб-программисту для обращения к другому абоненту сети.

    IPv4 состоит из четырех byteовых значений, разделенных точкой, например: 192.0.2.235. Стоит помнить, что значения byteовые, а значит, они лежат в пределах 0..255.

    IP-address, в свою очередь, делятся на классы, и просто так присвоить себе красивую комбинацию циферок не получится, но так сильно углубляться мы не станем. Достаточно понимать, что IP-address — это уникальный идентификатор абонента в сети, по которому мы сможем к нему обратиться.

  4. Транспортный уровень — занимается доставкой информации addressту. Для этого используются разные протоколы, которые нам пока не интересны. Гораздо больше нас интересует понятие, которое появляется на этом уровне, — port.

    Порты отвечают за идентификацию конкретного applications на компьютере. Например, ты написал чат на Java, установил на 2 компа и хочешь отправить своему собеседнику. Твое сообщение упаковывается, отправляется по конкретному IP-addressу, доставляется твоему собеседнику, но его ПК не знает, что делать с полученной информацией, так How не понимает, Howое приложение должно обработать твое сообщение. Для этого и указываются порты при общении абонентов в сети.

    Порт представляет собой число от 0 до 65535. Он добавляется к IP-addressу после двоеточия: 192.0.2.235:8080. Но нельзя использовать все порты из указанного диапазона: часть из них зарезервирована под операционную систему, еще часть принято использовать с конкретно оговоренной целью. В преднаmeaning разных портов углубляться не будем, пока достаточно понимать их роль в процессе общения в сети.

  5. Сеансовый уровень — создает и управляет сеансами связи приложений. На этом уровне становится возможным взаимодействие приложений, отправка requestов служебного уровня. Для нас важно знать, что на этом уровне между двумя абонентами открывается сессия (session), с которой нам часто придется работать.

    Сессия — сущность, которая создается при установке связи между двумя пользователями. В ней можно сохранять нужную нам информацию о юзере, об истории их взаимодействия. Важной деталью является то, что при остановке обмена информацией сессия не пропадает, а сохраняет свое состояние на протяжении установленного промежутка времени, поэтому пользователи могут продолжить обмен информацией после перерыва.

    Эгерде тиркеме бир эле учурда бир нече колдонуучу менен байланышса, тиешелүү сандагы байланыштар, демек, сессиялар түзүлөт. Ар бир сессияда уникалдуу идентификатор (ID) бар , ал тиркемеге байланыш болгон колдонуучуларды айырмалоого мүмкүндүк берет.

  6. Презентация катмары - маалыматтарды codeдоо/деcodeдоо үчүн жооптуу. Албетте, эгер биз башка колдонуучуга "Hello web" сабын жөнөтүш керек болсо, анда ал адегенде экorк codeго айландырылат (codeдолот), андан кийин гана жөнөтүлөт. Ал көздөгөн жерге жеткенде, билдирүү кайра которулат (деcodeдолот) жана алуучу баштапкы сапты көрө алат. Бул аракеттер презентация деңгээлинде ишке ашат.

  7. Колдонмо катмары биз үчүн эң кызыктуу катмар. Ал тиркемелерге тармак менен иштешүүгө мүмкүндүк берет. Бул деңгээлде биз кабыл алабыз, билдирүүлөрдү жөнөтөбүз, кызматтарга жана алыскы маалымат базаларына суроо-талаптарды жасайбыз.

    Бул деңгээлде колдонулган көптөгөн протоколдор бар: POP3, FTP, SMTP, XMPP, RDP, SIP, TELNET жана, албетте, HTTP/HTTPS. Протокол - бул биз билдирүүлөрдү түзүүдө карманган универсалдуу келишим. Биз сөзсүз түрдө HTTP/HTTPS протоколдору жөнүндө өзүнчө жана кененирээк сүйлөшөбүз.

1-бөлүк. Жазды жана JavaEEди үйрөнүүдөн мурун эмнени бorшиңиз керек - 2 Бул моделдин ар бир деңгээли кандай иштээрин бorшибиз керек эмес. Эң негизгиси, веб-тиркемелерди жазууда биз чечишибиз керек болгон элементтердин иштөө принциптерин түшүнүү, атап айтканда:
  • IP дареги — тармактагы абоненттин дареги;
  • Порт — белгилүү бир абоненттин арыз дареги;
  • Сеанс - бул эки абоненттин ортосундагы бардык байланыштын ичинде бар an object;
  • Колдонмо протоколдору (HTTP/HTTPS) билдирүүлөрдү түзүүдө жана жөнөтүүдө бизге жетекчorк кыла турган эрежелер.
Биз, айталы, интернет-дүкөнгө барганда, анын жайгашкан дарегин жана портун көрсөтөбүз. Биринчи барганыңызда, дүкөн маалымат жаздыра турган сессия түзүлөт. Мисалы, арабага калтырган товарларыбыз жөнүндө. Эгерде биз интернет-дүкөн өтмөгүн жаап, анан ага кайра барсак, биздин өнүмдөр сеанста сакталгандыктан арабада калат. Албетте, биз дүкөндөн алган бардык маалыматты HTTP/HTTPS протоколу аркылуу алабыз жана биздин браузер аны иштете алат. Сиз каршы чыгып, браузерде даректи жана портту эч качан киргизбегениңизди айта аласыз жана жарым-жартылай туура болосуз, анткени сиз DNS serverинде конвертацияланган домен атын киргиздиңиз. Бирок, бул жерде, келгиле, эмне экенин жакшыраак карап көрөлү.

DNS (Домен аталыштары системасы)

Биз буга чейин белгилүү болгондой, тармактагы ар бир абоненттин уникалдуу дареги бар. Эгерде биз колдонмо жөнүндө сөз кылсак, анын уникалдуу дареги IPv4:port болот . Бул даректи билүү менен, сиз түздөн-түз колдонмого кире аласыз. Биз реалдуу убакыт режиминде бардык өлкөлөрдө абанын орточо температурасын көрсөткөн веб-тиркеме жаздык деп элестетип көрөлү. Биз аны 226.69.237.119 дареги бар serverге жана 8080 портуна жайгаштырдык. Колдонуучу бизден маалымат алуу үчүн браузерге 5 санды киргизиши керек: 226.69.237.119:8080. Адамдар чындыгында сандар топтомун эстегенди жакшы көрүшпөйт: баарыбыз эле экиден ашык телефон номерин эстей бербейбиз. Мына ошондуктан домендик аталыш системасы ойлоп табылган . Биз дарегибиз үчүн "лакап ат" түзө алабыз, мисалы, world-temperature.com - жана беш орундуу даректи колдонуп бизди издөөнүн ордуна, колдонуучу браузердин дарек тилкесине биздин домен атын тере алат. Домендик аталыштарды жана чыныгы даректерди дал келтирүү үчүн, DNS serverлери бар . Колдонуучу, мисалы, javarush.ru браузерине киргенде, анын суроо-талабы DNS serverине жөнөтүлүп, ал чыныгы дарекке айланат. 1-бөлүк. Жазды жана JavaEEди үйрөнүүдөн мурун эмнени бorшиңиз керек - 4Муну түшүнүү биз үчүн маанилүү, анткени биздин тиркемелерде биз алыскы кызматтарды домендик аталыш боюнча да, реалдуу дарек боюнча да чакырабыз жана булар ошол эле кызматтар болот. Баары болду! Бул макалада биз тармактык дизайндын негиздерин карап чыктык, бул веб-программалоону үйрөнүүдөн мурун пайдалуу болот. Кийинки жолу биз кардар-server архитектурасы эмне экенин жана аны түшүнүү эмне үчүн абдан маанилүү экенин карап чыгабыз. 2-бөлүк. Программанын архитектурасы жөнүндө бир аз сүйлөшөлү 3-бөлүк. HTTP/HTTPS протоколдору 4-бөлүк. Maven негиздери 5-бөлүк. Сервлеттер. Жөнөкөй веб-тиркеме жазуу 6-бөлүк. Сервлет контейнерлери 7-бөлүк. MVC (Модель-Көрүү-Контроллер) үлгүсүн киргизүү 8-бөлүк. Чакан жазгы жүктөө тиркемесин жазуу
Комментарийлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION