- Porozmawiamy trochę o sieci.
- Przyjrzymy się architekturze klient-serwer i architekturze trójwarstwowej.
- Przyjrzymy się protokołom HTTP/HTTPS.
- Dowiemy się wszystkiego, co musisz wiedzieć o Mavenie.
- Mówimy o logowaniu.
- O kontenerach serwletów.
- I na koniec o MVC.
Część 1. Porozmawiamy trochę o networkingu.
Zacznijmy od tego, co najważniejsze, od tego, na czym zbudowana jest każda sieć społecznościowa, usługa i aplikacja internetowa, komunikator i prosta strona internetowa — sieć (w kontekście tej serii artykułów termin „sieć” oznacza Internet ) . Sieć składa się z ogromnej liczby komputerów: są one ze sobą połączone i mogą się komunikować. Ważne jest, aby zrozumieć, jak to robią, ponieważ aplikacje internetowe przesyłają informacje z jednego komputera do drugiego.modelu OSI
Model Open Systems Interconnection (OSI) tworzy wielopoziomowe podejście do budowania sieci. Wyraźnie pokazuje, w jaki sposób i na jakiej warstwie jednostki tej samej sieci mogą ze sobą współdziałać. W sumie ten model zawiera 7 warstw:7 | Aplikacja |
6 | Prezentacja |
5 | Sesja |
4 | Transport |
3 | Sieć |
2 | Łącza danych |
1 | Fizyczny |
-
Warstwa fizyczna — ta warstwa dotyczy praw fizyki i sposobów ich wykorzystania dla naszych celów. Na przykład tworzenie kabli i układanie ich do jednostek w sieci.
Ta warstwa nas nie interesuje.
-
Warstwa łącza danych — Warstwa ta odpowiada za przesyłanie danych do węzłów sieci oraz tworzenie kanałów transmisji danych dla obiektów fizycznych.
Ta warstwa nas nie interesuje, chyba że chcesz napisać firmware dla sprzętu ustanawiającego łącza danych.
-
Warstwa sieci — Ta warstwa służy do określania adresów poszczególnych użytkowników sieci i tras do nich. Warto dowiedzieć się więcej o szczegółach tej warstwy, a mianowicie o adresach sieciowych.
Adresy sieciowe są definiowane przez specjalny protokół: najpopularniejszym jest IPv4 (Internet Protocol version 4). Jest to protokół, którego programista sieciowy musi używać do kontaktowania się z innym użytkownikiem sieci.
Adres IPv4 składa się z czterech wartości bajtowych oddzielonych kropkami, na przykład: 192.0.2.235. Należy pamiętać, że wartości te są bajtami, co oznacza, że mieszczą się w przedziale 0..255.
Adresy IP z kolei dzielą się na klasy. Nie możemy po prostu przypisać sobie pięknej kombinacji liczb, ale nie będziemy się tu zbytnio zagłębiać. Wystarczy zrozumieć, że adres IP jednoznacznie identyfikuje użytkownika sieci i może służyć do kontaktowania się z nim.
-
Warstwa transportowa — ta warstwa obsługuje dostarczanie informacji do adresata. W tym celu stosuje się różne protokoły. Na razie nie jesteśmy nimi zainteresowani. Dużo bardziej interesuje nas koncepcja portu , która pojawia się na tej warstwie.
Porty są odpowiedzialne za identyfikację konkretnej aplikacji na komputerze. Załóżmy na przykład, że piszesz aplikację do czatu w Javie, instalujesz ją na 2 komputerach i chcesz wysłać wiadomość do znajomego. Twoja wiadomość jest spakowana, wysłana na określony adres IP i dostarczona do Twojego znajomego, ale jego komputer nie wie, co zrobić z otrzymaną informacją, ponieważ nie rozumie, która aplikacja ma przetworzyć Twoją wiadomość. Kiedy jednostki sieciowe komunikują się, porty są używane do wskazania, która aplikacja powinna przetwarzać informacje.
Port jest liczbą z zakresu od 0 do 65535. Jest dodawany do adresu IP po dwukropku: 192.0.2.235:8080 . Ale nie możesz korzystać ze wszystkich portów w określonym zakresie: niektóre z nich są zarezerwowane dla systemu operacyjnego, inne są zwykle używane do określonych celów. Nie będziemy zagłębiać się w przeznaczenie różnych portów. Na razie wystarczy zrozumieć ich rolę w procesie komunikacji w sieci.
-
Warstwa sesji — ta warstwa tworzy sesje komunikacyjne i zarządza nimi. W tej warstwie aplikacje mogą wchodzić w interakcje, wysyłając żądania na poziomie usług. Musimy wiedzieć, że w tej warstwie sesja jest otwierana między dwoma użytkownikami i musimy pracować z sesją.
Sesja jest jednostką tworzoną podczas nawiązywania połączenia między dwoma użytkownikami . Może przechowywać niezbędne informacje o użytkowniku oraz historię interakcji z użytkownikiem. Ważnym szczegółem jest to, że gdy wymiana informacji ustanie, sesja nie znika. Zamiast tego zachowuje swój stan przez określony czas, dzięki czemu użytkownicy mogą kontynuować wymianę informacji po przerwie.
Jeśli aplikacja komunikuje się z kilkoma użytkownikami jednocześnie, to nawiązywana jest odpowiednia liczba połączeń (a tym samym sesji). Każda sesja ma unikalny identyfikator (ID) , który umożliwia aplikacji rozróżnienie użytkowników, z którymi się komunikuje.
-
Warstwa prezentacji — Ta warstwa jest odpowiedzialna za kodowanie/dekodowanie danych. Oczywiście, jeśli chcemy wysłać ciąg "Hello web" innemu użytkownikowi, to jest on najpierw konwertowany na (zakodowany jako) kod binarny, a dopiero potem wysyłany. Po dotarciu do odbiorcy wiadomość jest konwertowana z powrotem (dekodowana), a odbiorca może zobaczyć oryginalny ciąg znaków. Działania te odbywają się w warstwie prezentacji.
-
Warstwa aplikacji jest dla nas najciekawszą warstwą. Umożliwia aplikacjom komunikację z siecią. W tej warstwie odbieramy i wysyłamy wiadomości oraz wysyłamy żądania do usług i zdalnych baz danych.
W tej warstwie wykorzystywanych jest wiele protokołów: POP3, FTP, SMTP, XMPP, RDP, SIP, TELNET i oczywiście HTTP/HTTPS. Protokół to uniwersalna umowa, której przestrzegamy podczas komunikacji. Na pewno udostępnimy oddzielne szczegółowe omówienie protokołu HTTP/HTTPS.
- Adres IP — Adres użytkownika w sieci
- Port — Adres aplikacji określonego użytkownika
- Sesja — Jednostka istniejąca przez cały okres komunikacji między dwoma użytkownikami
- Protokoły aplikacji (HTTP/HTTPS) — Są to zasady, których będziemy przestrzegać podczas tworzenia i wysyłania wiadomości.
GO TO FULL VERSION