JavaRush /Java Blog /Random-TL /Bahagi 1. Ano ang kailangan mong malaman bago pag-aralan ...

Bahagi 1. Ano ang kailangan mong malaman bago pag-aralan ang Spring at JavaEE

Nai-publish sa grupo
Kung natapos mo na ang pag-aaral ng Java SE o malapit na dito, oras na para isipin ang mga susunod na hakbang sa pagsakop sa propesyon ng isang developer ng Java. Bahagi 1. Ano ang kailangan mong malaman bago pag-aralan ang Spring at JavaEE - 1Sa isang banda, mayroon ka nang mahusay na pag-unawa sa Java: alam mo kung paano magtrabaho kasama ang IDE, magsulat ng mga programa, at marami pang iba. Ngunit ano ang susunod nating gagawin sa kanila, ang mga programa? Paano sila gawing mas cool at "palayain sila sa mundo"? Nagiging malinaw na oras na upang simulan ang pag-aaral ng mga teknolohiya ng Enterprise. At dito na magsisimula ang saya. Hindi mahalaga kung aling teknolohiya ang napagpasyahan mong magsimula. Maging ito ay JavaEE o Spring, malamang na makakatagpo ka ng maraming bagay na hindi mo pa rin naiintindihan. Sa pagitan ng mga pangunahing kaalaman ng Java at mga advanced na teknolohiya, mayroon pa ring intermediate na antas ng kaalaman na tutulong sa iyo na hindi mawala ang mga labi ng pagpipigil sa sarili at tiwala sa sarili kapag nagbabasa ng maraming dokumentasyon. Samakatuwid, ang layunin ng serye ng mga artikulong ito ay bigyan ka ng pinakamababang kinakailangang kaalamang teoretikal para sa karagdagang pag-aaral ng JavaEE o Spring. Ang lahat ng materyal ay nahahati sa 7 bahagi:
  1. Pag-usapan natin ng kaunti ang tungkol sa network.
  2. Isaalang-alang natin ang istraktura ng client-server at tatlong antas na arkitektura.
  3. Tingnan natin ang mga protocol ng HTTP/HTTPS.
  4. Alamin natin ang lahat ng kailangan mong malaman tungkol kay Maven.
  5. Pag-usapan natin ang tungkol sa mga servlet.
  6. Mga lalagyan ng servlet.
  7. At sa wakas - tungkol sa MVC.

Part 1. Pag-usapan natin ang network

Magsimula tayo sa pinakamahalagang bagay at pag-usapan ang batayan kung saan binuo ang lahat ng mga social network, serbisyo sa web at application, instant messenger at simpleng site - tungkol sa network ( sa konteksto ng seryeng ito ng mga artikulo, ang terminong "network" ay nangangahulugang ang Global Internet ). Ang network ay binubuo ng isang malaking bilang ng mga computer: sila ay magkakaugnay at may kakayahang makipag-usap. Mahalagang maunawaan kung paano nila ito ginagawa, dahil ang mga web application ay eksaktong ginagawa nila upang maglipat ng impormasyon mula sa isang computer patungo sa isa pa.

Modelo ng network ng OSI

Ang modelo ng OSI (Open Systems Interconnection) ay lumilikha ng isang layered na diskarte sa pagbuo ng isang network. Malinaw na ipinapakita nito kung paano at sa anong antas ang mga miyembro ng parehong network ay maaaring makipag-ugnayan sa isa't isa. Sa kabuuan, naglalaman ang modelong ito ng 7 antas:
7 Inilapat
6 Representasyon
5 Sesyon
4 Transportasyon
3 Network
2 Maliit na tubo
1 Pisikal
Ang paghahati sa mga layer ng abstraction ay nagbibigay-daan sa mga espesyalista na nagtatrabaho, halimbawa, sa layer ng transportasyon, na huwag isipin ang mga detalye ng pagpapatupad ng network sa network at mga layer ng session. Ang pamamaraang ito ay ginagamit din sa programming. Tingnan natin ang lahat ng mga layer ng modelo ng OSI at alamin kung alin sa mga ito ang kawili-wili sa amin:
  1. 1. Pisikal na antas - dito ginagawa ng mga batas ng pisika ang kanilang trabaho, at ang gawain ng tao ay gamitin at idirekta ito para sa kanyang sariling mga layunin. Halimbawa, ang paglikha ng mga cable at paglalagay ng mga ito sa mga miyembro ng network.

    Hindi kami interesado.

  2. Layer ng link ng data - responsable para sa pagpapadala ng data sa mga node ng network at paglikha ng mga channel ng paghahatid ng data sa mga pisikal na bagay.

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

  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), с которой нам часто придется работать.

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

    Kung ang isang application ay nakikipag-ugnayan sa ilang mga user nang sabay-sabay, isang naaangkop na bilang ng mga koneksyon, at samakatuwid ay mga session, ay itinatag. Ang bawat session ay may natatanging identifier (ID) , na nagbibigay-daan sa application na makilala sa pagitan ng mga user kung kanino nagkakaroon ng komunikasyon.

  6. Layer ng pagtatanghal - responsable para sa pag-encode/pag-decode ng data. Malinaw, kung kailangan nating ipadala ang string na "Hello web" sa isa pang user, ito ay unang iko-convert (naka-encode) sa binary code, at pagkatapos lamang ipapadala. Kapag naabot na nito ang patutunguhan, ibabalik (na-decode) ang mensahe at makikita ng tatanggap ang orihinal na string. Ang mga pagkilos na ito ay nangyayari sa antas ng pagtatanghal.

  7. Ang layer ng application ay ang pinaka-kagiliw-giliw na layer para sa amin. Pinapayagan nito ang mga application na makipag-ugnayan sa network. Sa antas na ito kami ay makakatanggap, magpapadala ng mga mensahe, gagawa ng mga kahilingan sa mga serbisyo at malalayong database.

    Mayroong maraming mga protocol na ginagamit sa antas na ito: POP3, FTP, SMTP, XMPP, RDP, SIP, TELNET at, siyempre, HTTP/HTTPS. Ang protocol ay isang unibersal na kasunduan na sinusunod namin kapag bumubuo ng mga mensahe. Tiyak na pag-uusapan natin ang tungkol sa mga protocol ng HTTP/HTTPS nang hiwalay at mas detalyado.

Bahagi 1. Ano ang kailangan mong malaman bago pag-aralan ang Spring at JavaEE - 2 Hindi namin kailangang malaman kung paano gumagana ang bawat antas ng modelong ito. Ang pangunahing bagay ay upang maunawaan ang mga prinsipyo ng pagpapatakbo ng mga elemento na kailangan nating harapin kapag nagsusulat ng mga web application, lalo na:
  • IP address—ang address ng subscriber sa network;
  • Port - address ng aplikasyon ng isang partikular na subscriber;
  • Ang session ay isang entity na umiiral sa buong komunikasyon sa pagitan ng dalawang subscriber;
  • Ang mga protocol ng aplikasyon (HTTP/HTTPS) ay ang mga panuntunang gagabay sa atin kapag bumubuo at nagpapadala ng mga mensahe.
Kapag pumunta kami sa, sabihin nating, isang online na tindahan, ipinapahiwatig namin ang address at port ng lokasyon nito. Sa iyong unang pagbisita, isang session ang gagawin kung saan maaaring mag-record ang tindahan ng impormasyon. Halimbawa, tungkol sa mga kalakal na iniwan namin sa cart. Kung isasara namin ang tab ng online na tindahan at pagkatapos ay babalik dito, mananatili ang aming mga produkto sa cart dahil naka-save ang mga ito sa session. Siyempre, natatanggap namin ang lahat ng impormasyong natatanggap namin mula sa tindahan sa pamamagitan ng HTTP/HTTPS protocol, at maaaring iproseso ito ng aming browser. Maaari kang tumutol at sabihin na hindi mo pa naipasok ang address at port sa browser, at bahagyang magiging tama ka, dahil ipinasok mo ang domain name, na na-convert sa DNS server. Ngunit narito, tingnan natin nang mas mabuti kung ano.

DNS (Domain Name System)

Tulad ng nalaman na natin, ang bawat subscriber sa network ay may natatanging address. Kung pinag-uusapan natin ang tungkol sa isang application, ang natatanging address nito ay IPv4:port . Alam ang address na ito, maaari mong direktang ma-access ang application. Isipin natin na nagsulat kami ng isang web application na nagpapakita ng average na temperatura ng hangin sa lahat ng mga bansa sa real time. Na-deploy namin ito sa isang server na may address na 226.69.237.119 at sa port 8080. Upang makatanggap ang user ng impormasyon mula sa amin, kailangan niyang magpasok ng 5 numero sa browser: 226.69.237.119:8080. Hindi talaga gustong maalala ng mga tao ang mga hanay ng mga numero: hindi lahat sa atin ay nakakaalala ng higit sa dalawang numero ng telepono. Kaya naman naimbento ang domain name system . Maaari kaming lumikha ng isang "alias" para sa aming address—halimbawa, world-temperature.com—at sa halip na hanapin kami gamit ang isang limang-digit na address, maaaring i-type ng user ang aming domain name sa address bar ng browser. Upang tumugma sa mga domain name at totoong address, mayroong mga DNS server . Kapag ang isang gumagamit ay pumasok, halimbawa, javarush.ru sa browser, ang kanyang kahilingan ay ipinadala sa DNS server, kung saan ito ay nagiging isang tunay na address. Bahagi 1. Ano ang kailangan mong malaman bago pag-aralan ang Spring at JavaEE - 4Mahalaga para sa amin na maunawaan ito, dahil sa aming mga aplikasyon ay tatawag kami ng mga malalayong serbisyo sa parehong pangalan ng domain at sa pamamagitan ng tunay na address, at ang mga ito ay magiging parehong mga serbisyo. Iyon lang! Sa artikulong ito, tiningnan namin ang mga pangunahing kaalaman sa disenyo ng network, na magiging kapaki-pakinabang bago ka magsimulang mag-aral ng web programming. Sa susunod na titingnan natin kung ano ang arkitektura ng client-server at kung bakit napakahalaga ng pag-unawa dito. Part 2. Pag-usapan natin nang kaunti ang tungkol sa arkitektura ng software Part 3. HTTP/HTTPS protocols Part 4. Maven basics Part 5. Servlets. Pagsusulat ng simpleng web application Part 6. Servlet container Part 7. Introducing the MVC (Model-View-Controller) pattern Part 8. Pagsusulat ng maliit na spring-boot application
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION