
- Vi ska prata lite om nätverkande.
- Vi kommer att undersöka klient-server- och treskiktsarkitekturen.
- Vi kommer att utforska HTTP/HTTPS-protokollen.
- Vi lär dig allt du behöver veta om Maven.
- Vi pratar om loggning.
- Om servletbehållare.
- Och slutligen om MVC.
Del 1. Vi ska prata lite om nätverkande.
Låt oss börja med det som är viktigast genom att prata om vad varje socialt nätverk, webbtjänst och webbapp, instant messenger och enkel webbplats bygger på – nätverket (i sammanhanget av denna artikelserie betyder termen "nätverk" Internet ) . Nätverket består av ett stort antal datorer: de är sammankopplade och kan kommunicera. Det är viktigt att förstå hur de gör detta, eftersom webbapplikationer skickar information från en dator till en annan.OSI-modell
OSI-modellen (Open Systems Interconnection) skapar en nivåbaserad strategi för att bygga ett nätverk. Det visar tydligt hur och på vilket lager enheter i samma nätverk kan interagera med varandra. Sammanlagt innehåller denna modell 7 lager:7 | Ansökan |
6 | Presentation |
5 | Session |
4 | Transport |
3 | Nätverk |
2 | Data länk |
1 | Fysisk |
-
Fysiskt lager — Det här lagret handlar om fysikens lagar och hur man använder dem för våra syften. Till exempel att skapa kablar och lägga dem till enheter i nätverket.
Detta lager intresserar oss inte.
-
Datalänklager — Detta lager ansvarar för att överföra data till nätverksnoder och skapa dataöverföringskanaler för fysiska objekt.
Detta lager intresserar oss inte om du inte vill skriva firmware för hårdvaran som upprättar datalänkar.
-
Nätverkslager — Detta lager är till för att bestämma enskilda nätverksanvändares adresser och rutter till dem. Det finns värde i att lära sig mer om detaljerna i detta lager, nämligen nätverksadresser.
Nätverksadresser definieras av ett speciellt protokoll: det vanligaste är IPv4 (Internet Protocol version 4). Detta är protokollet som en webbprogrammerare behöver använda för att kontakta en annan nätverksanvändare.
En IPv4-adress består av fyra bytevärden separerade med punkter, till exempel: 192.0.2.235. Du bör komma ihåg att dessa värden är bytes, vilket betyder att de ligger inom intervallet 0..255.
IP-adresser är i sin tur indelade i klasser. Vi kan inte bara tilldela oss en vacker kombination av siffror, men vi kommer inte att gå särskilt djupt här. Det räcker för att förstå att en IP-adress unikt identifierar en nätverksanvändare och kan användas för att kontakta den användaren.
-
Transportlager — Detta lager hanterar leverans av information till en adressat. Olika protokoll används för att åstadkomma detta. För närvarande är vi inte intresserade av dem. Vi är mycket mer intresserade av konceptet med en hamn , som visas i det här lagret.
Portar är ansvariga för att identifiera en specifik applikation på en dator. Anta till exempel att du skriver en chattapp i Java, installerar den på två datorer och vill skicka ett meddelande till din kompis. Ditt meddelande paketeras, skickas till en specifik IP-adress och levereras till din kompis, men hans dator vet inte vad den ska göra med den mottagna informationen, eftersom den inte förstår vilken applikation som ska behandla ditt meddelande. När nätverksenheter kommunicerar används portar för att indikera vilken applikation som ska behandla informationen.
Porten är ett tal i intervallet från 0 till 65535. Den läggs till i IP-adressen efter ett kolon: 192.0.2.235:8080 . Men du kan inte använda alla portar i det angivna intervallet: några av dem är reserverade för operativsystemet, andra används vanligtvis för specifika ändamål. Vi kommer inte att fördjupa oss i syftena med olika hamnar. För nu räcker det att förstå deras roll i kommunikationsprocessen på nätverket.
-
Sessionslager — Detta lager skapar och hanterar kommunikationssessioner. På det här lagret blir det möjligt för applikationer att interagera och skicka förfrågningar på servicenivå. Vad vi behöver veta är att i det här lagret öppnas en session mellan två användare, och vi måste arbeta med sessionen.
En session är en enhet som skapas när en anslutning upprättas mellan två användare. Den kan lagra nödvändig information om en användare och om historiken för interaktion med användaren. En viktig detalj är att när informationsutbytet upphör försvinner inte sessionen. Istället behåller den sitt tillstånd under en viss tidsperiod, så att användare kan fortsätta att utbyta information efter en paus.
Om en applikation kommunicerar med flera användare samtidigt, upprättas ett motsvarande antal anslutningar (och därmed sessioner). Varje session har en unik identifierare (ID) som gör att applikationen kan skilja mellan de användare som den kommunicerar med.
-
Presentationslager — Detta lager ansvarar för kodning/avkodning av data. Uppenbarligen, om vi behöver skicka strängen "Hello web" till en annan användare, omvandlas den först till (kodad som) binär kod, och först därefter skickas den. När meddelandet når mottagaren konverteras det tillbaka (avkodas) och mottagaren kan se originalsträngen. Dessa åtgärder äger rum i presentationslagret.
-
Appliceringsskiktet är det mest intressanta lagret för oss. Det tillåter applikationer att kommunicera med nätverket. På detta lager tar vi emot och skickar meddelanden och gör förfrågningar till tjänster och fjärrdatabaser.
Det finns många protokoll som används i detta lager: POP3, FTP, SMTP, XMPP, RDP, SIP, TELNET och, naturligtvis, HTTP/HTTPS. Ett protokoll är ett universellt avtal som vi följer när vi kommunicerar. Vi kommer definitivt att ge en separat detaljerad diskussion om HTTP/HTTPS.

- IP-adress — Användarens adress i nätverket
- Port — Adressen till en specifik användares applikation
- Session — En enhet som existerar under hela kommunikationsperioden mellan två användare
- Applikationsprotokoll (HTTP/HTTPS) — Det här är regler som vi kommer att följa när vi skriver och skickar meddelanden.
DNS (Domain Name System)
Som vi redan har lärt oss har varje nätverksanvändare en unik adress. Om vi pratar om applikationen kommer dess unika adress att vara IPv4-adress:port . Om du känner till den här adressen kan du komma åt applikationen direkt. Föreställ dig att vi skrev en webbapplikation som visar den genomsnittliga lufttemperaturen i alla länder i realtid. Vi distribuerade den på en server med adressen 226.69.237.119, på port 8080. För att kunna ta emot information från oss måste användaren ange 5 nummer i webbläsaren: 226.69.237.119:8080. Människor gillar inte att memorera uppsättningar nummer: många av oss kan inte komma ihåg mer än två telefonnummer. Det är därför domännamnssystemetuppfanns. Vi kan skapa ett "alias" för vår adress, till exempel world-temperature.com. Istället för att leta efter oss med hjälp av en adress som består av fem svåra att komma ihåg nummer kan användaren ange vårt domännamn i webbläsarens adressfält. Det finns DNS-servrar som mappar domännamn till riktiga adresser. Till exempel, när en användare anger codegym.cc i en webbläsare, skickas hennes begäran till en DNS-server, som konverterar den till den faktiska adressen.
GO TO FULL VERSION