JavaRush /Блоги Java /Random-TG /Қисми 1. Пеш аз омӯхтани Spring ва JavaEE чиро донед

Қисми 1. Пеш аз омӯхтани Spring ва JavaEE чиро донед

Дар гурӯҳ нашр шудааст
Агар шумо аллакай омӯзиши Java SE-ро ба итмом расонида бошед ё ба он наздик бошед, вақти он расидааст, ки дар бораи қадамҳои оянда дар фатҳи касби таҳиягари Java фикр кунед. Қисми 1. Пеш аз омӯхтани Spring ва JavaEE чиро донед - 1Аз як тараф, шумо аллакай дар бораи Java хуб фаҳмед: шумо медонед, ки чӣ тавр бо IDE кор кардан, барномаҳо навиштан ва ғайра. Аммо дар оянда мо бояд бо онҳо, барномаҳо чӣ кор кунем? Чӣ тавр онҳоро сардтар кардан ва "ба ҷаҳон озод кардан" мумкин аст? Маълум мешавад, ки вақти он расидааст, ки ба омӯзиши технологияҳои Enterprise шурӯъ кунед. Ва дар ин ҷо фароғат оғоз мешавад. Фарқ надорад, ки шумо бо кадом стек технология оғоз кунед. Новобаста аз он ки ин JavaEE ё баҳор аст, шумо эҳтимолан бо бисёр чизҳое дучор хоҳед шуд, ки то ҳол дарки шумо нестанд. Байни асосҳои Java ва технологияҳои пешрафта, то ҳол сатҳи миёнаи дониш мавҷуд аст, ки ба шумо кӯмак мекунад, ки ҳангоми хондани ҳуҷҷатҳои ҳаҷм боқимондаҳои худдорӣ ва худбовариро аз даст надиҳед. Аз ин рӯ, ҳадафи ин силсила мақолаҳо ба шумо додани ҳадди ақали донишҳои назариявии зарурӣ барои омӯзиши минбаъдаи JavaEE ё Spring мебошад. Ҳама маводҳо ба 7 қисм тақсим мешаванд:
  1. Биёед дар бораи шабака каме сӯҳбат кунем.
  2. Биёед сохтори муштарӣ-server ва меъмории сесатҳиро баррасӣ кунем.
  3. Биёед протоколҳои HTTP/HTTPS-ро бубинем.
  4. Биёед ҳама чизеро омӯзем, ки шумо дар бораи Maven донед.
  5. Биёед дар бораи сервлетҳо сӯҳбат кунем.
  6. Контейнерҳои сервлет.
  7. Ва ниҳоят - дар бораи MVC.

Қисми 1. Биёед дар бораи шабака каме сӯҳбат кунем

Биёед аз чизи муҳимтарин оғоз кунем ва дар бораи он сӯҳбат кунем, ки ҳама шабакаҳои иҷтимоӣ, хидматҳои веб ва замимаҳо, паёмнависҳои фаврӣ ва сайтҳои оддӣ дар асоси он сохта шудаанд - дар бораи шабака ( дар заминаи ин силсила мақолаҳо, истилоҳи "шабака" Интернети ҷаҳонӣ ). Шабака аз шумораи зиёди компютерҳо иборат аст: онҳо ба ҳам пайвастанд ва метавонанд муошират кунанд. Фаҳмидан муҳим аст, ки онҳо ин корро чӣ тавр мекунанд, зеро барномаҳои веб барои интиқоли маълумот аз як компютер ба компютери дигар масъуланд.

Модели шабакаи OSI

Модели OSI (Open Systems Interconnection) барои сохтани шабака равиши қабатро эҷод мекунад. Он ба таври возеҳ нишон медиҳад, ки аъзоёни як шабака чӣ гуна ва дар кадом сатҳ метавонанд бо ҳамдигар ҳамкорӣ кунанд. Дар маҷмӯъ, ин модел дорои 7 сатҳ аст:
7 Татбик карда шудааст
6 Намояндагӣ
5 Сессия
4 Нақлиёт
3 Шабака
2 Канал
1 ҷисмонӣ
Тақсим ба қабатҳои абстраксия ба мутахассисоне, ки масалан дар қабати нақлиёт кор мекунанд, имкон медиҳад, ки дар бораи ҷузъиёти татбиқи шабака дар қабатҳои шабакавӣ ва сессия фикр накунанд. Ин равиш дар барномасозӣ низ истифода мешавад. Биёед ба ҳамаи қабатҳои модели OSI назар андозем ва бифаҳмем, ки кадоме аз онҳо барои мо ҷолиб аст:
  1. 1. Физический уровень — здесь свое дело делают законы физики, а задача человека — использовать и направлять это в своих целях. Например, создание кабелей и прокладывание их к членам сети.

    Нам не интересен.

  2. Канальный уровень — отвечает за передачу данных сетевым узлам, создание каналов передачи данных на физических 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), с которой нам часто придется работать.

    Сеанс як an objectест, ки ҳангоми барқарор кардани алоқа байни ду корбар эҷод мешавад. Дар он мо метавонем маълумоти заруриро дар бораи корбар ва таърихи ҳамкории онҳо захира кунем. Ҷузъиёти муҳим ин аст, ки ҳангоми қатъ шудани мубодилаи иттилоот сеанс аз байн намеравад, балки ҳолати худро дар муддати муайян нигоҳ медорад, то корбарон метавонанд пас аз танаффус мубодилаи иттилоотро идома диҳанд.

    Агар барнома дар як вақт бо якчанд корбар муошират кунад, шумораи мувофиқи пайвастҳо ва аз ин рӯ сессияҳо муқаррар карда мешаванд. Ҳар як сессия дорои идентификатори беназир (ID) мебошад , ки ба барнома имкон медиҳад, ки байни корбароне, ки муошират бо онҳо сурат мегирад, фарқ кунад.

  6. Қабати муаррифӣ - барои рамзгузорӣ/деcodeкунии маълумот масъул аст. Аён аст, ки агар мо бояд сатри "Hello web" -ро ба корбари дигар фиристем, он аввал ба codeи дуӣ табдил дода мешавад (рамзгузорӣ карда мешавад) ва танҳо баъд фиристода мешавад. Вақте ки он ба макони таъинот мерасад, паём баргардонида мешавад (деcode) ва қабулкунанда метавонад сатри аслиро бубинад. Ин амалҳо дар сатҳи муаррифӣ сурат мегиранд.

  7. Қабати барнома барои мо қабати ҷолибтарин аст. Он ба барномаҳо имкон медиҳад, ки бо шабака ҳамкорӣ кунанд. Дар ин сатҳ мо қабул мекунем, паёмҳо мефиристем, ба хидматҳо ва пойгоҳи додаҳои дурдаст дархост пешниҳод мекунем.

    Протоколҳои зиёде мавҷуданд, ки дар ин сатҳ истифода мешаванд: POP3, FTP, SMTP, XMPP, RDP, SIP, TELNET ва албатта HTTP/HTTPS. Протокол як созишномаи универсалӣ мебошад, ки мо ҳангоми навиштани паёмҳо риоя мекунем. Мо бешубҳа дар бораи протоколҳои HTTP/HTTPS алоҳида ва муфассалтар сӯҳбат хоҳем кард.

Қисми 1. Пеш аз омӯхтани Spring ва JavaEE чиро донед - 2 Ба мо лозим нест, ки бидонем, ки ҳар як сатҳи ин модел чӣ гуна кор мекунад. Хӯроки асосии фаҳмидани принсипҳои кори унсурҳо, ки мо бояд ҳангоми навиштани веб-барномаҳо мубориза барем, аз ҷумла:
  • IP-address - суроғаи муштарӣ дар шабака;
  • Порт — суроғаи дархости муштарии мушаххас;
  • Сессия як an objectест, ки дар тамоми муоширати байни ду муштарӣ мавҷуд аст;
  • Протоколҳои барномавӣ (HTTP/HTTPS) қоидаҳое мебошанд, ки ҳангоми тартиб додан ва фиристодани паёмҳо моро роҳнамоӣ мекунанд.
Вақте ки мо ба мағозаи онлайн меравем, мо суроғаи ҷойгиршавӣ ва бандари онро нишон медиҳем. Ҳангоми ташрифи аввалини шумо сеанс таъсис дода мешавад, ки дар он мағоза метавонад маълумотро сабт кунад. Масалан, дар бораи молхое, ки мо дар ароба монда будем. Агар мо ҷадвали мағозаи онлайнро пӯшем ва сипас ба он баргардем, маҳсулоти мо дар ароба боқӣ мемонанд, зеро онҳо дар сеанс захира карда мешаванд. Хуб, албатта, мо ҳама маълумотеро, ки аз мағоза тавассути протоколи HTTP/HTTPS мегирем, мегирем ва браузери мо метавонад онро коркард кунад. Шумо метавонед эътироз кунед ва бигӯед, ки шумо ҳеҷ гоҳ суроға ва портро дар браузер ворид накардаед ва қисман дуруст мегӯед, зеро шумо номи домейнро ворид кардаед, ки дар serverи DNS табдил дода шудааст. Аммо дар ин ҷо, биёед беҳтар бубинем, ки чӣ аст.

DNS (Системаи номи домейн)

Тавре ки мо аллакай фаҳмидем, ҳар як муштарӣ дар шабака суроғаи беназир дорад. Агар мо дар бораи барнома сухан ронем, суроғаи ягонаи он IPv4:port хоҳад буд . Бо донистани ин суроға, шумо метавонед бевосита ба барнома дастрасӣ пайдо кунед. Биёед тасаввур кунем, ки мо веб-барномае навиштем, ки ҳарорати миёнаи ҳаворо дар ҳама кишварҳо дар вақти воқеӣ нишон медиҳад. Мо онро дар server бо суроғаи 226.69.237.119 ва дар бандари 8080 ҷойгир кардем. Барои он ки корбар аз мо маълумот гирад, вай бояд дар браузер 5 рақам ворид кунад: 226.69.237.119:8080. Одамон аслан дар хотир нигоҳ доштани маҷмӯи рақамҳоро дӯст намедоранд: на ҳамаи мо зиёда аз ду рақами телефонро дар хотир дорем. Барои ҳамин системаи номи доменӣ ихтироъ карда шуд . Мо метавонем барои суроғаи худ "тахаллус" эҷод кунем - масалан, world-temperature.com - ва ба ҷои ҷустуҷӯи мо бо истифода аз суроғаи панҷ рақам, корбар метавонад номи домени моро дар сатри суроғаҳои браузер ворид кунад. Барои мувофиқ кардани номҳои домейнҳо ва суроғаҳои воқеӣ serverҳои DNS мавҷуданд . Вақте ки корбар, масалан, javarush.ru дар браузер ворид мешавад, дархости ӯ ба serverи DNS фиристода мешавад, ки он ба суроғаи воқеӣ табдил меёбад. Қисми 1. Пеш аз омӯхтани Spring ва JavaEE чиро донед - 4Барои мо муҳим аст, ки инро дарк кунем, зеро дар замимаҳои худ мо ба хидматҳои дурдаст ҳам аз рӯи номи домен ва ҳам бо суроғаи воқеӣ занг мезанем ва инҳо ҳамон хидматҳо хоҳанд буд. Ҳамааш ҳамин! Дар ин мақола мо ба асосҳои тарҳрезии шабака назар кардем, ки пеш аз оғози омӯзиши веб барномасозӣ муфид хоҳад буд. Дафъаи дигар мо мефаҳмем, ки меъмории мизоҷ-server чист ва чаро фаҳмидани он ин қадар муҳим аст. Қисми 2. Биёед каме дар бораи меъмории нармафзор сӯҳбат кунем Қисми 3. Протоколҳои HTTP/HTTPS Қисми 4. Асосҳои Maven Қисми 5. Сервлетҳо. Навиштани замимаи оддии веб Қисми 6. Контейнерҳои сервлет Қисми 7. Муаррифии намунаи MVC (Model-View-Controller) Қисми 8. Навиштани барномаи хурди пурборкунандаи баҳор
Шарҳҳо
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION