Jak działają strony i aplikacje
1 godz. 24 min · Biznes i Automatyzacje
Grzegorz RógIdea ArchitectCzy ja naprawdę muszę to wiedzieć? Czy to ważne, co dzieje się po wpisaniu adresu w przeglądarce, jak on jest skonstruowany i co zawiera? Wbrew pozorom - bardzo! Wiedza o tym, jak przeglądarka interpretuje to, co do niej wpisujemy przyda Ci się w wielu aspektach, nie tylko w programowaniu. Dzięki temu zrozumiesz jak serwer wymienia informacje z przeglądarką, jak działają UTMy w marketingowych kampaniach, czy wyszukiwarka, z której możesz przechwycić informacje w Analytics. Poznasz też kilka pojęć związanych z konsolą i parę przydatnych komend.
Porozmawiamy o tym, jak komunikować się efektywnie z serwerem, jakie są typy zapytań i jak możemy je egzekwować. Przy okazji poznasz aplikację Postman, z której będziesz mógł wygodnie wysyłać zapytania do serwera i przeglądać odpowiedzi. Jest to program, bez którego współczesny web development byłby bardzo utrudniony a komunikacja z back-endem dużo trudniejsza w implementacji.
Jak są zapisywane dane sesji, jakie dane przechowuje przeglądarka i po co? Odpowiedzi na te pytania pomogą Ci uniknąć frustracji w przypadku, gdy dane zostaną niepotrzebnie scache'owane ale także dowiedzieć się, jak zoptymalizować zasoby na stronie, które mogą być serwowane szybciej dla użytkownika. Zobaczysz, jak wygląda proces tworzenia ciasteczek, poznasz pojęcia jak Session Storage i Local Storage, to wszystko na kilku praktycznych przykładach.
W kursie przyjrzymy się szczegółowo działaniu API, poznasz podstawowe koncepcje, które stoją za najbardziej popularną metodą komunikacji z back-endem w nowoczesnych aplikacjach. Pomówimy o formacie JSON, będziemy też wysyłać zapytania do API takich aplikacji jak Twitter czy Google. W ten sposób dowiesz się, jak działają mechanizmy, które pozwolą Ci zintegrować się z najpopularniejszymi narzędziami w sieci!
Z kursem powinien zapoznać się z nim każdy, kto planuje tworzyć strony internetowe i chce rozwijać swoją karierę w ścieżkach webdevelopmentu. Jest to podstawowy materiał, który co prawda nie wchodzi w szczegóły jak sama konstrukcja API czy tworznie Rest API, ale jest uniwersalnym fundamentem wiedzy do różnych ścieżek. Przyda się też twórcom i właścicielom internetowych projektów, którym pozwoli lepiej zrozumieć mechanizmy działające pod maską webowych stron i aplikacji po to, aby je rozwijać czy korzystać z automatyzacji.
Cześć!
Witaj w lekcji, w której chciałbym powiedzieć Ci i wytłumaczyć trochę lepiej
co dzieje się pod maską przeglądarki i jak działa internet.
Tym, na czym opiera się cały internet jest
protokół HTTP i o nim właśnie chciałbym porozmawiać.
Być może robisz to automatycznie, ale
prawdopodobnie w pasku adresu w przeglądarce wielokrotnie wpisywałeś http,
czy bezpieczną wersje tego protokołu https,
ogólnie nowoczesne przeglądarki już nawet tego nie wymagają.
Wystarczy, że podamy adres strony internetowej np.
httpbin.org
i następnie zostanie dodany ten protokół automatycznie.
Ale protokół zawsze musi tutaj być dlatego, że
to on odpowiada za właściwą komunikację z serwerem, od którego otrzymujemy dane.
Już tłumaczę Ci jak to wygląda. W momencie kiedy wciskasz enter wpisując jakiś adres
w przeglądarce i wyświetlasz taką witrynę pod spodem do serwera pod
konkretnym adresem IP, na który jest zamieniany ten adres,
taki ludzki adres, który wpisałeś
z tym serwerem
nasza przeglądarka się komunikuje i wysyła do niego tak zwane zapytanie HTTP.
Zapytanie jest wysyłane konkretną metodą,
która umożliwia np. zwracanie przez serwer danych.
Jest to wtedy metoda GET, więc my wpisując
coś i wysyłając zapytanie w przeglądarce wysyłamy do serwera zapytanie GET i w
odpowiedzi na to zapytanie serwer zwraca nam dane w tym przypadku w postaci HTML,
który jest renderowany, wyświetlany wewnątrz przeglądarki.
Chciałbym pokazać Ci jak działa ten mechanizm pod spodem i do tego skorzystamy
z terminala na Macu czy z konsoli na Windowsie.
Będziesz musiał doinstalować sobie do niej oprogramowanie.
Znajdziesz je w linku.
Będzie to telnet,
możesz też skorzystać z URL, który pokażę później.
Ogólnie telnet to kawałek oprogramowania, który pozwala na właśnie komunikację z
pomocą tych różnych protokołów, w tym protokołu HTTP.
My w ten sposób będziemy starali się teraz
tekstowo z konsoli dostać do tej samej strony.
Protokół, jak sama nazwa wskazuje możesz kojarzyć z protokołem dyplomatycznym.
Rzeczywiście tak właśnie jest.
To, że to jest protokół oznacza, że będzie
wymagał zachowania pewnej określonej składni, określonych reguł,
tak samo jak w dyplomacji ktoś wita się z kimś pierwszy, ktoś pierwszy siada.
W tym przypadku, w przypadku komunikacji w
ramach takiego protokołu będziemy też musieli zachować informację o tym, w jaki
sposób rozmawiamy, w jakiej wersji rozmawiamy.
Czyli oprócz tego, że będziemy musieli po
pierwsze spotkać się, czyli będziemy musieli odwołać się do
konkretnego adresu IP czy do konkretnego serwera,
tak samo jakbyś spotykał się z kimś w kawiarni,
trzeba po prostu powiedzieć, w której kawiarni się spotykamy.
Poza tym drugą obligatoryjną składową jest
to, abyśmy porozumiewali się w tym samym języku.
Jeśli spotkasz się z kimś, kogo języka absolutnie nie rozumiesz w tej kawiarni
niestety i tak między Wami nie dojdzie do jakiejś sensownej wymiany informacji.
Dokładnie tak samo jest z protokołem HTTP.
Najpierw będziemy musieli powiedzieć
jednak z kim się chcemy połączyć i robimy to za pomocą polecenia telnet,
czyli korzystamy z tego oprogramowania, a następnie wpisujemy adres httpbin.org
i dodatkowo jeszcze tutaj po spacji podajemy port 80, czyli pukamy w
zasadzie na tym serwerze do odpowiednich drzwi.
I w tym momencie już połączyliśmy się z
adresem IP, pod którym jest właśnie httpbin
i teraz możemy już wykonać pierwsze zapytanie.
To zapytanie wykonamy z pomocą metody GET,
która pozwoli nam odebrać dane od serwera i zapytamy o całą stronę.
Teraz to co podajemy tutaj po spacji to tzw.
adres URI.
Być może słyszałeś o adresach URL i można powiedzieć, że URI to ich
składowa, natomiast URL i URI to nie jest to samo.
Jeżeli mielibyśmy httpbin.org i np.
tutaj jakiś katalog czy zasób najczęściej
jest to katalog na serwerze, który nazywał by się xml
to wtedy można powiedzieć, że ta końcówka to jest właśnie adres URI,
natomiast cały ten adres razem z
protokołem i nazwą domeny byłby to adres URL.
Tym w zasadzie się to różni.
Jeżeli chcielibyśmy dostać główną stronę,
czyli cały ten zasób, to po prostu wpisujemy ukośnik bez niczego nie podając
tutaj jakiegoś żadnego dodatkowego przyrostka.
I teraz musimy jeszcze powiedzieć w jakim języku rozmawiamy. Więc będzie to HTTP
jeszcze ukośnik łamane na odpowiednią wersję HTTP, czyli w naszym przypadku 1.1
Teraz musimy podać jeden nagłówek i będzie to nagłówek Host.
Podajemy go dlatego, że na tym konkretnym serwerze może być np.
wiele różnych serwisów, wiele różnych
stron i chcemy odwołać się konkretnie do tej strony httpbin.
I teraz to co dostajemy tutaj
to jest odpowiedź serwera i zauważ, że jest to, być może już to znasz, jest to
kod HTML, czyli właśnie to co tutaj mamy w formie tekstowej
to samo dostaje przeglądarka, przeglądarka będąc klientem, który potrafi odczytać i
zinterpretować w pewien sposób kod HTML będzie mogła go
wyświetlić już jako właściwe akapity, nagłówki również pokolorować itd.
I to jest właśnie to, co zwrócił nam serwer, czyli cały kod HTML witryny,
natomiast dodatkowo dostaliśmy od niego
coś, czego normalnie w przeglądarce na różnych stronach nie widzisz.
Są to tak zwane nagłówki i te nagłówki informują nas o różnych rzeczach, m.in. o
tym, że nasze zapytanie się udało, czyli np.
ten status, o którym jeszcze później pomówimy,
informacje o tym, jakiego typu zostaje do nas
dostarczona odpowiedź, czyli że jest to HTML, w jakim kodowaniu i np.
ile danych zostało przesłanych to jest liczba w bajtach.
W związku z tym te nagłówki to takie
metadane zapytania, które zarówno my możemy wysłać do serwera jak i później
serwer odpowiada nam wysyłając również określone nagłówki.
W związku z tym można powiedzieć, że poprawnie skonstruowane zapytanie do
serwera składa się po pierwsze z metody, którą chcemy np.
odebrać dane, ale te metody będziemy o nich mówić,
to mogą być też np.
metody pozwalające na aktualizację danych czy skasowanie danych.
Pierwsza rzecz to jest metoda.
Później odwołujemy się do konkretnego zasobu, czyli podajemy tzw.
URI i później mówimy o tym, jakie chcemy, jakim językiem rozmawiamy
czyli podajemy tutaj akurat tą wersję protokołu.
Następnie możemy do takiego zapytania dodać sobie różne rzeczy, np.
nagłówki, gdzie ja
dodałem tutaj jeden nagłówek, który wskazał mi określony host. Od serwera
w odpowiedzi z kolei dostajemy informację
również jakim językiem mówi, czyli że udało nam się porozumieć,
kod statusu, o którym też porozmawiamy
jeszcze w kolejnej lekcji, ale generalnie tutaj jest kod statusu, że wszystko się udało.
Następnie informacje np.
o tym, jakie treści zostały wysłane w nagłówkach czy jeszcze inne rzeczy.
No i w końcu treść takiej odpowiedzi, czyli tak zwane body,
gdzie jest przesyłana ta właściwa rzecz, o którą pytamy z pomocą naszego zapytania,
czyli w tym przypadku akurat dokument HTML.
Naturalnie serwer jest nam w stanie też odpowiedzieć innym typem dokumentu, np.
JSON czy XML em.
Gdybyśmy np zapytali o zasób, który znajduje się na XML i również jeśli się do HTTP 1.1
wpiszmy szybko host a następnie httpbin.org i dwa entery, to dostajemy w tym momencie
XML. W przeciwieństwie do HTML, XML nie jest składnią, która jest w
przeglądarce wyświetlana w jakiś ładny sposób
w związku z tym, gdybyśmy w przeglądarce
wpisali to samo, zamiast fajnie sformatowanego dokumentu dostaniemy po
prostu czysty XML. I dokładnie na tej zasadzie będzie to działać.
Czyli wiesz już z czego składa się zapytanie i odpowiedź do serwera,
wiesz także, że w tej komunikacji muszą brać udział dwie strony.
Stronę, która wysyła zapytanie nazywamy
klientem, czyli jesteśmy to my, a ściślej rzecz biorąc nasza przeglądarka, która
np. wysyła zapytanie o konkretną witrynę internetową.
A więc my jako klient wysyłamy zapytanie i
serwer na to zapytanie w konkretny sposób nam odpowiada.
Więc znasz już podstawy protokołu HTTP.
Na koniec tej lekcji w terminalu uruchomimy sobie jeszcze jedno polecenie. Będzie to
telnet, a następnie pójdziemy pod adres towel.blinkenlights.nl
i wciśniemy Enter Return a to sprawi z kolei, że będziemy mogli
teraz w terminalu tekstowo obejrzeć cały jeden czwarty odcinek Gwiezdnych Wojen.
Zatem zapraszam Cię teraz do tego pasjonującego kawałka tekstowej
kinematografii, a ja widzę się z Tobą w kolejnej lekcji.
Do zobaczenia!