JavaRush /Java Blogu /Random-AZ /Hissə 1. Spring və JavaEE-ni öyrənməzdən əvvəl bilməli ol...

Hissə 1. Spring və JavaEE-ni öyrənməzdən əvvəl bilməli olduğunuz şeylər

Qrupda dərc edilmişdir
Əgər siz artıq Java SE-də təhsil almısınızsa və ya ona yaxınsınızsa, Java tərtibatçısının peşəsini fəth etmək üçün növbəti addımlar barədə düşünməyin vaxtıdır. Hissə 1. Spring və JavaEE-ni öyrənməzdən əvvəl bilməli olduğunuz şeylər - 1Bir tərəfdən, siz artıq Java-nı yaxşı başa düşürsünüz: siz IDE ilə işləməyi, proqram yazmağı və s. bilirsiniz. Bəs bundan sonra onlarla, proqramlarla nə etməliyik? Onları necə sərinləşdirmək və "dünyaya buraxmaq" olar? Aydın olur ki, Enterprise texnologiyalarını öyrənməyə başlamağın vaxtıdır. Və burada əyləncə başlayır. Hansı texnologiya yığını ilə başlamağa qərar verdiyinizin əhəmiyyəti yoxdur. İstər JavaEE, istərsə də Bahar, yəqin ki, hələ də başa düşmədiyiniz bir çox şeylə qarşılaşacaqsınız. Java dilinin əsasları və qabaqcıl texnologiyalar arasında hələ də həcmli sənədləri oxuyarkən özünə nəzarət və özünə inam qalıqlarını itirməməyə kömək edəcək orta səviyyəli biliklər mövcuddur. Buna görə də, bu məqalələr silsiləsinin məqsədi JavaEE və ya Baharın sonrakı öyrənilməsi üçün sizə minimum zəruri nəzəri bilikləri verməkdir. Bütün materiallar 7 hissəyə bölünür:
  1. Şəbəkə haqqında bir az danışaq.
  2. Gəlin müştəri-serverin strukturunu və üç səviyyəli arxitekturasını nəzərdən keçirək.
  3. HTTP/HTTPS protokollarına baxaq.
  4. Maven haqqında bilmək lazım olan hər şeyi öyrənək.
  5. Servletlər haqqında danışaq.
  6. Servlet qabları.
  7. Və nəhayət - MVC haqqında.

1-ci hissə. Şəbəkə haqqında bir az danışaq

Ən vacib şeydən başlayaq və bütün sosial şəbəkələrin, veb xidmətləri və tətbiqlərinin, ani mesajlaşmaların və sadə saytların qurulduğu əsas haqqında danışaq - şəbəkə haqqında ( bu məqalələr silsiləsi kontekstində "şəbəkə" termini deməkdir. Qlobal İnternet ). Şəbəkə çoxlu sayda kompüterdən ibarətdir: onlar bir-birinə bağlıdır və əlaqə qura bilir. Onların bunu necə etdiyini başa düşmək vacibdir, çünki veb proqramları məlumatın bir kompüterdən digərinə ötürülməsinə cavabdehdir.

OSI şəbəkə modeli

OSI (Open Systems Interconnection) modeli şəbəkənin qurulmasına laylı yanaşma yaradır. Eyni şəbəkə üzvlərinin bir-biri ilə necə və hansı səviyyədə qarşılıqlı əlaqədə ola biləcəyini aydın şəkildə göstərir. Ümumilikdə bu model 7 səviyyəni ehtiva edir:
7 Tətbiq olunub
6 Nümayəndəlik
5 Sessiya
4 Nəqliyyat
3 Şəbəkə
2 Kanal
1 Fiziki
Abstraksiya təbəqələrinə bölünmə, məsələn, nəqliyyat qatında işləyən mütəxəssislərə şəbəkə və sessiya qatlarında şəbəkənin tətbiqinin təfərrüatları barədə düşünməməyə imkan verir. Bu yanaşma proqramlaşdırmada da istifadə olunur. Gəlin OSI modelinin bütün təbəqələrinə baxaq və onlardan hansının bizim üçün maraqlı olduğunu öyrənək:
  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), с которой нам часто придется работать.

    Sessiya iki istifadəçi arasında əlaqə qurulduqda yaradılan bir qurumdur. Orada istifadəçi və onların qarşılıqlı əlaqə tarixi haqqında bizə lazım olan məlumatları saxlaya bilərik. Əhəmiyyətli bir detal ondan ibarətdir ki, məlumat mübadiləsi dayandırıldıqda, sessiya yoxa çıxmır, müəyyən müddət ərzində öz vəziyyətini saxlayır, beləliklə, istifadəçilər fasilədən sonra məlumat mübadiləsini davam etdirə bilərlər.

    Tətbiq eyni vaxtda bir neçə istifadəçi ilə əlaqə saxlayırsa, müvafiq sayda əlaqə və buna görə də sessiyalar qurulur. Hər bir sessiyanın unikal identifikatoru (ID) var ki, bu da proqrama ünsiyyətin baş verdiyi istifadəçiləri ayırd etməyə imkan verir.

  6. Təqdimat səviyyəsi - məlumatların kodlaşdırılması/şifrlənməsi üçün cavabdehdir. Aydındır ki, əgər “Salam web” sətirini başqa istifadəçiyə göndərmək lazımdırsa, o, əvvəlcə ikili koda çevrilir (kodlaşdırılır) və yalnız bundan sonra göndərilir. Təyinat yerinə çatdıqdan sonra mesaj geri çevrilir (deşifrə edilir) və alıcı orijinal sətri görə bilir. Bu hərəkətlər təqdimat səviyyəsində baş verir.

  7. Tətbiq təbəqəsi bizim üçün ən maraqlı təbəqədir. Tətbiqlərə şəbəkə ilə qarşılıqlı əlaqə yaratmağa imkan verir. Bu səviyyədə biz qəbul edəcəyik, mesajlar göndərəcəyik, xidmətlərə və uzaq verilənlər bazalarına sorğular edəcəyik.

    Bu səviyyədə istifadə olunan bir çox protokollar var: POP3, FTP, SMTP, XMPP, RDP, SIP, TELNET və əlbəttə ki, HTTP/HTTPS. Protokol mesajlar yazarkən əməl etdiyimiz universal razılaşmadır. Biz mütləq HTTP/HTTPS protokolları haqqında ayrıca və daha ətraflı danışacağıq.

Hissə 1. Spring və JavaEE-ni öyrənməzdən əvvəl bilməli olduğunuz şeylər - 2 Bu modelin hər səviyyəsinin necə işlədiyini bilməyə ehtiyacımız yoxdur. Əsas odur ki, veb proqramları yazarkən qarşılaşmalı olacağımız elementlərin iş prinsiplərini başa düşək, yəni:
  • IP ünvanı - şəbəkədəki abunəçinin ünvanı;
  • Port — konkret abunəçinin müraciət ünvanı;
  • Sessiya iki abunəçi arasında bütün ünsiyyət zamanı mövcud olan bir qurumdur;
  • Tətbiq protokolları (HTTP/HTTPS) mesajlar tərtib edərkən və göndərərkən bizə rəhbərlik edəcək qaydalardır.
Tutaq ki, onlayn mağazaya getdiyimiz zaman onun yerləşdiyi ünvanını və portunu göstəririk. İlk səfərinizdə mağazanın məlumatları qeyd edə biləcəyi bir sessiya yaradılır. Məsələn, arabada qoyduğumuz mallar haqqında. Onlayn mağaza sekmesini bağlasaq və sonra ona qayıtsaq, məhsullarımız sessiyada saxlandığı üçün səbətdə qalacaq. Əlbəttə ki, biz mağazadan aldığımız bütün məlumatları HTTP/HTTPS protokolu vasitəsilə alırıq və brauzerimiz onu emal edə bilər. Etiraz edib deyə bilərsiniz ki, siz heç vaxt brauzerdə ünvan və port daxil etməmisiniz və qismən haqlı olacaqsınız, çünki DNS serverində çevrilmiş domen adını daxil etmisiniz. Ancaq burada nəyin nə olduğuna daha yaxşı nəzər salaq.

DNS (Domen Adı Sistemi)

Artıq aşkar etdiyimiz kimi, şəbəkədəki hər bir abunəçinin özünəməxsus ünvanı var. Əgər bir tətbiqdən danışırıqsa, onun unikal ünvanı IPv4:port olacaq . Bu ünvanı bilməklə siz birbaşa proqrama daxil ola bilərsiniz. Təsəvvür edək ki, biz real vaxt rejimində bütün ölkələrdə orta hava temperaturunu göstərən veb tətbiqi yazmışıq. Biz onu 226.69.237.119 ünvanlı serverdə və 8080 portunda yerləşdirdik. İstifadəçinin bizdən məlumat ala bilməsi üçün o, brauzerə 5 nömrə daxil etməlidir: 226.69.237.119:8080. İnsanlar həqiqətən də nömrələr toplusunu yadda saxlamağı sevmirlər: hamımız ikidən çox telefon nömrəsini xatırlamırıq. Buna görə domen adı sistemi icad edilmişdir . Ünvanımız üçün “ləqəb” yarada bilərik – məsələn, world-temperature.com – və istifadəçi beş rəqəmli ünvandan istifadə etməklə bizi axtarmaq əvəzinə brauzerin ünvan çubuğuna domen adımızı daxil edə bilər. Domen adlarını və real ünvanları uyğunlaşdırmaq üçün DNS serverləri var . İstifadəçi, məsələn, javarush.ru brauzerinə daxil olduqda, onun sorğusu DNS serverinə göndərilir və burada o, real ünvana çevrilir. Hissə 1. Spring və JavaEE-ni öyrənməzdən əvvəl bilməli olduğunuz şeylər - 4Bunu anlamaq bizim üçün vacibdir, çünki tətbiqlərimizdə uzaqdan xidmətlərə həm domen adı, həm də real ünvanla zəng edəcəyik və bunlar eyni xidmətlər olacaq. Hamısı budur! Bu yazıda biz veb proqramlaşdırmanı öyrənməyə başlamazdan əvvəl faydalı olacaq şəbəkə dizaynının əsaslarına baxdıq. Növbəti dəfə biz müştəri-server arxitekturasının nə olduğuna və onu başa düşməyin nə üçün bu qədər vacib olduğuna baxacağıq. 2-ci hissə. Proqram arxitekturasından bir az danışaq 3-cü hissə. HTTP/HTTPS protokolları Hissə 4. Maven əsasları Hissə 5. Servletlər. Sadə veb proqramın yazılması Hissə 6. Servlet konteynerləri Hissə 7. MVC (Model-View-Controller) nümunəsinin təqdimatı Hissə 8. Kiçik yaylı yükləmə proqramının yazılması
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION