"Hej, Amigo!"

"Hej, Bilaabo!"

"Vad kommer du att berätta för mig om idag?"

"Många saker. Men till att börja med tror jag att vi kommer att diskutera arbetet med ett nätverk och internet. Intresserad?"

"Japp. The Galactic Internet är supercoolt."

"Okej, men låt oss börja med lite historia. I början av 2000-talet var situationen den här..."

"Varje dator som var ansluten till Internet hade ett unikt nummer. Detta var ett vanligt 4-byte nummer. Det kallas IP-adressen."

"Men människor har dåligt minne och kämpar för att komma ihåg något som 2108458776, så de skriver ofta varje byte separat."

"Om vi ​​delar upp fyrabytetalet 2108458776 i separata byte får vi 125.172.135.24. Som ni kommer ihåg består varje byte av 8 bitar och kan innehålla tal från 0 till 255."

"Så, det är så vi skriver numret?"

"Ja. Det är bara lättare (för människor) att komma ihåg fyra-byte nummer när de skrivs på det här sättet."

"Som det hände spelade valet att använda endast 4 byte snart ett grymt spratt för dem. Antalet enheter som var anslutna till Internet växte så snabbt att de snart tog slut."

"Hur kom de runt det?"

"De gjorde det som människor vanligtvis gör."

"De kom på en ny standard för IP-adresser och döpte den stolt till IPv6."

"Till skillnad från en vanlig IP-adress (kallad IPv4) som använder 4 byte för att bilda ett unikt nummer, använder den nya standarden 16."

"Tänk bara på det, människor kunde inte komma ihåg 10 siffror i ett vanligt tal (som 2108458776), så de var tvungna att dela upp dem i 4 delar, men sedan tänkte de använda tal som består av 16 byte."

"Ja, ibland är människor konstiga."

"Japp. Människor är människor."

"Som sagt, de tog sig ur sin knipa."

"De tröttnade på att komma ihåg siffrorna och bestämde sig för att ersätta dem med ord."

"Hur är det? Kan du ge mig ett exempel?"

"Självklart, web.mail.com , google.com , new.books.amazon.com , ..."

"Denna sorts namn kallas en domän."

"För att detta internet skulle fungera korrekt skapade de en speciell tabell som heter Domain Name System (DNS) som lagrar IP-adressen för varje domännamn."

"Så här fungerar det."

1)  En användare anger en adress i en webbläsare, till exempel web.mail.com .

2)  Webbläsaren kommer åt DNS och använder domännamnet för att få IP-adressen.

3)  En begäran med den nödvändiga URL-adressen skickas till denna IP-adress.

"Det ser inte så enkelt ut."

"Men det här tillvägagångssättet har flera fördelar:"

" 1) Människor har lätt för att komma ihåg namn som kan verbaliseras."

" 2) Domännamn kan byggas hierarkiskt genom att lägga till underdomäner i början av ett namn. Exakt som ett paketnamn i Java."

" 3) Om du behöver ändra IP-adressen för webbservern behöver du bara ändra DNS-posten, och allt kommer att fungera som det gjorde förut - användare behöver inte komma ihåg en ny adress."

"DNS ser ut ungefär så här:"

Domän namn IP-adress
mail.com 128.35.36.189
web.mail.com 145.12.17.13
new.mail.com 192.155.15.3
google.com 92.117.151.100
google.com 193.168.0.1
docs.google.com 217.12.222.1

"Är vettigt."

"Hur som helst, en domän är namnet på en dator, men vi behöver inte datorn – vi behöver det som finns på datorn. Det här är vad webbadresser är till för."

"Initialt var en URL faktiskt en länk till en fil på en annan dator. Till exempel:"

Exempel
http :// info.codegym.cc / user/info/profile.html
Beskrivning
http  är protokollet för klient-serverkommunikation
info.codegym.cc  är datorns domännamn
user/info/profile.html  är sökvägen till filen på datorn

"I början av nätverksutvecklingen kunde en webbserver bara använda en URL för att servera filer som den lagrade någonstans. URL:en var faktiskt en global sökväg till filen: datornamn + sökväg."

"Senare, när webbservrar började generera filer själva, ändrades webbadresserna lite och blev en begäran till webbservern. Begäran parametrar lades också till."

"Idag är det sällsynt att se ett filtillägg i slutet av en URL. "En modern URL är bara en unik länk med parametrar. Mer som ett metodanrop snarare än en global filsökväg."

"En klassisk modern webbadress ser ut så här:"

Analyserar webbadressen
http :// codegym.cc / alpha/api/contacts ? userid=13&filter=none&page=3
Beskrivning av delar av URL:en
codegym.cc  är domännamnet — det unika namnet (adressen) till en dator på Internet
http  är protokollet för klient-serverkommunikation
alpha/api/contacts  är webbserverns begäran eller begäran om en webbsida på servern
userid=13 & filter=none & page=3  är en sträng med förfrågningsparametrarna

"Ja, jag minns. Du berättade för mig om webbadresser nyligen."

"Och om hamnar också. Du använde exemplet med ett hyreshus."

"Det skulle vara bättre att berätta för mig vad 'http' är. Jag ser 'protokoll' skrivet överallt, men jag är inte klar över vad det är."

"OK. Jag ska berätta för dig utan vidare."

IP-adress, domän, URL - 1

" HTTP står för Hyper T ext T ransport Protocol och är för överföring av hypertext . "

"Vad är hypertext?"

"Det är HTML."

"I grova drag är ett protokoll en uppsättning regler för kommunikation. Det beskriver de förfrågningar som kan skickas till en webbserver, och i vilket format, samt hur webbservern ska svara."

"Kort sagt, situationen är denna. Vanliga textfiler eller, om du vill, stora bitar av text skickas mellan klienten och servern. "

"En begäran kommer till servern och servern ger ett svar på varje begäran."

"Här är exempel på en sådan begäran och svar:"

Begäran
GET alpha/api/contacts HTTP/1.1
Host: codegym.cc
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en; rv:1.9b5) Gecko/2008050509 Firefox/3.0b5
Accept: text/html
Connection: close
Beskrivning
GET – request subtype
alpha/api/contacts – request to the web server
HTTP/1.1 – protocol version – HTTP/1.1
Host: codegym.cc – domain name
User-Agent: Mozilla/5… – unique browser name
Accept: text/html – requested document type: HTML
Connection: close – close the server connection after processing the request.

"Den första raden är den faktiska begäran. Det som följer är ytterligare begärandeparametrar, även kända som 'header fields'."

"Och här är ett exempel på ett svar:"

Svar
HTTP/1.1 200 OK
Date: Wed, 11 Feb 2009 11:20:59 GMT
Server: Apache
X-Powered-By: PHP/5.2.4-2ubuntu5wm1
Last-Modified: Wed, 11 Feb 2009 11:20:59 GMT
Content-Language: en
Content-Type: text/html; charset=utf-8
Content-Length: 1234
Connection: close
<html><body><a href="http://ample.com/about.html#contacts">Click here</a></body></html>
HTTP/1.1 200 OK - «200 OK» means everything is okay.
Date: Wed, 11 Feb 2009 - Date on which the request was processed
Server: Apache - Name of the web server
X-Powered-By: PHP - The server uses PHP
Last-Modified: Wed, 11 Feb 2009 - The time of the last update of the requested file
Content-Language: en - The language of the file
Content-Type: text/html; charset=utf-8 – This is an HTML-file with UTF-8 encoding
Content-Length: 1234 - The response is 1234 bytes long
Connection: close - The connection will be closed after the request is handled
<html><body><a href="http://ample - The HTML file itself.

"Jag vill uppmärksamma er på två saker:"

"För det första, oavsett vad du begär, ser det ut som en filförfrågan till servern. Det spelar ingen roll om filen finns på servern eller om servern genererar den som svar på förfrågan."

"För det andra skickas själva filen som en del av HTTP-svaret . Med andra ord ser vi ytterligare data i början av serverns svar och sedan brödtexten på filen som serveras. "

"Vad intressant! Jag är inte säker på att jag förstod allt. Jag läser det här igen senare."

"Åh, jag vill berätta om en annan liten men intressant sak: kakor."

"Vad är det?"

"Enligt HTTP-protokollet är cookies små bitar av information som servern skickar till klienten för lagring på klienten. Och de skickas tillbaka till servern som en del av efterföljande förfrågningar. "

"Och vad är poängen med det?"

"Anta att en användare loggar in på hemsidan för en webbplats. Servern skapar ett sessionsobjekt på servern för denna användare, och ett unikt sessionsnummer skickas till klienten som en cookie. Under nästa begäran från klienten till servern kommer detta sessionsnummer, tillsammans med andra cookies, att skickas tillbaka till servern. Detta betyder att servern kan känna igen användaren som skickade den nya begäran."

"Så intressant!"

"Japp. När du skriver dina egna servlets ska vi titta närmare på det här ämnet. Men nu tar vi en paus."

"Vad du än säger."