Internet: HTTP i HTML
Nazywam się Jasmine Lawrence. Jestem kierownikiem programowym zespołu projektowego XBOX One.
Jedna z naszych najważniejszych funkcji nazywa się XBOX Live. To serwis online,
który łączy graczy z całego świata, a my to umożliwiamy dzięki Internetowi.
Nie jest to łatwe zadanie; wiele rzeczy dzieje się za kulisami.
Internet całkowicie zmienia sposób współdziałania i kontaktowania się ludzi. Jak to działa?
Jak komputery na całym świecie komunikują się ze sobą? Zajmijmy się przeglądaniem sieci.
Najpierw otwiera się przeglądarkę. Jest to aplikacja umożliwiająca dostęp do stron internetowych.
Potem wpisuje się adres lub URL, format lokalizacji zasobów witryny,
na którą chce się wejść np. tumblr.com.
Nazywam się David Karp, założyłem Tumblr;
dzisiaj porozmawiamy o przeglądarkach i zasadach ich działania.
Pewnie jesteście ciekawi, co dzieje się po wpisaniu adresu do przeglądarki i wciśnięciu "Enter".
Trudno to sobie wyobrazić, c'nie? W tym momencie komputer zaczyna rozmawiać
z innym komputerem, serwerem, zwykle oddalonym o tysiące kilometrów.
W ciągu milisekund komputer pyta serwer o witrynę, a serwer odpowiada komputerowi w
języku HTTP. HTTP oznacza protokół przesyłania dokumentów hipertekstowych.
Można uznać go za język, w jakim jeden komputer prosi drugi
komputer o dokument. To jest aż tak proste.
Jeśli ktoś podsłuchałby rozmowę swojego komputera z serwerem w Internecie
stwierdziłby, że tworzą ją elementy zwane zapytaniami "GET" - uzyskaj. Po prostu
"GET" - uzyskaj i nazwa dokumentu, o który nam chodzi. Jeśli ktoś się loguje na
Tumblr i ładuje naszą stronę logowania, to po prostu wysyła zapytanie GET do serwera
Tumblr, który mówi GET - uzyskaj/login. A dla serwera Tumblr oznacza to, że chcesz cały
kod HTML dla strony logowania Tumblr. HTML oznacza hipertekstowy język znaczników.
Język, którego używa się do opowiedzenia przeglądarce, jak ma wyglądać strona.
Wikipedia stanowi duży prosty dokument, a HTML jest
językiem, którym posługujemy się, aby powiększyć i pogrubić tytuł, aby dobrać
właściwą czcionkę, aby połączyć określony tekst z określonymi stronami,
aby część tekstu pogrubić, część zapisać kursywą, wstawić obrazek na środek,
przesunąć w prawo, a potem w lewo.
Tekst strony internetowej zawarty jest bezpośrednio w HTML
ale inne elementy np. obrazki lub filmy mają własne URL, o które prosisz.
Przeglądarka wysyła oddzielne zapytania HTTP dla każdego z nich i
wyświetla je, gdy dotrą. Jeśli na stronie internetowej jest wiele różnych obrazów,
każdy wymaga odrębnego zapytania HTTP, a strona ładuje się wolniej. Czasem, chodząc
po Internecie, nie szukamy tylko stron z zapytaniami GET. Czasem wysyłamy informację
np. gdy wypełniamy formularz lub wpisujemy zapytanie.
Przeglądarka wysyła tę informację w formie tekstu do serwera używając zapytania HTTP POST.
Powiedzmy, że logujesz się na Tumblr. Najpierw składasz zapytanie POST,
który jest POSTEM na stronę logowania Tumblr, a zawiera dane. Adres email, hasło.
To idzie do serwera Tumblr. Serwer Tumblr stwierdza, że OK, to jest David.
Wysyła stronę z powrotem na Twój serwer, który stwierdza: "Sukces! Dawid zalogowany".
Poza stroną internetową dołącza jednak niewidoczne dane cookie, które widzi
Twoja przeglądarka i wie, że trzeba to zapisać. To ważne, gdyż tylko tak strona
pamięta, że Ty to Ty. Wszystkie dane cookie to dowód tożsamości dla Tumblr.
To liczba identyfikująca Cię jako Davida. Przeglądarka zapamiętuje tę liczbę
i gdy odświeżasz Tumblr po raz kolejny i znowu przechodzisz do Tumblr.com,
Twoja przeglądarka wie, że ma automatycznie dołączyć Twój numer ID z zapytaniem,
które wysyła do serwerów Tumblr. Te serwery już widzą, że zapytanie pochodzi
z Twojej przeglądarki, widzą nr ID i wiedzą: "OK, to zapytanie od Davida".
Ale cóż, Internet jest w pełni otwarty. Wszystkie jego połączenia są udostępnione,
a informacje przesyła w formie tekstu. To pozwala hakerom węszyć w prywatnych
informacjach przesyłanych w Internecie. Zapobiegają temu bezpieczne strony prosząc
serwer o kontakt z bezpiecznym kanałem, korzystając z Secure Sockets Layer
i jego następcy Transport Layer Security. SSL i TLS stanowią zabezpieczenia wiadomości,
chroniąc je przed ingerencją ciekawskich. SSL i TLS są aktywne, gdy widać kłódkę,
która pojawia się w pasku adresu przeglądarki, obok HTTPS. Protokoły HTTPS
zapewniają bezpieczeństwo i ochronę zapytań HTTP.
Gdy strona prosi przeglądarkę o włączenie bezpiecznego połączenia, najpierw wystawia certyfikat
cyfrowy. To coś w rodzaju urzędowego dowodu tożsamości strony.
Certyfikaty cyfrowe są publikowane przez podmioty certyfikujące czyli zaufane jednostki,
które weryfikują tożsamość stron i wystawiają im certyfikaty.
Tak, jak urzędy państwowe wystawiają dowód osobisty czy paszport. Jeśli strona próbuje uruchomić
bezpieczne połączenie bez stosownego certyfikatu, przeglądarka Cię ostrzega!
Tak wyglądają podstawy przeglądania Internetu. Tej części, którą oglądamy
codziennie. Podsumowując HTTP i DNS regulują wysyłanie i odbieranie HTML,
plików mediów i wszystkiego w Internecie. TCP/IP i sieci routerów dyskretnie to
umożliwiają, bo dzielą i przenoszą informacje w małych pakietach. Te pakiety
są binarnymi sekwencjami jedynek i zer, które są fizycznie przesyłane kablami
elektrycznymi, światłowodami i sieciami bezprzewodowymi. Gdy już dowiecie się,
jak działa jedna warstwa internetu, korzystajcie i nie martwcie się o szczegóły.
Wierzymy, że one ze sobą współdziałają, dostarczając informacje w sposób niezawodny.