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 ostatniej lekcji tego
kursu, w której chciałbym trochę podsumować to co zrobiliśmy i
przypomnieć Ci, ale także rozszerzyć Twoją wiedzę o te najważniejsze sformułowania w
kontekście pracy z API oraz z protokołem HTTP. Protokół,
już wiesz co to jest
te określone reguły, które służą do komunikacji, HTTP
coś, na czym oparty jest cały Internet.
Dwa kluczowe pojęcia, które tutaj mieliśmy
to serwer oraz klient, gdzie serwer jest tym naszym komputerem, który gdzieś stoi i
trzyma wszystkie informacje, działa 24/7, do którego dobijają się klienci, czyli
wysyłają rozmaite zapytania, czyli tzw.
request. Mówiliśmy o tym, jaka jest struktura
request z zapytaniem, że powinien on zawierać metodę, czyli np.
GET, POST albo PATH czy PUT, żeby np.
modyfikować istniejące dane czy DELETE żeby usuwać istniejące dane.
Kolejno mamy nazwę, czy mamy kolejną wersję protokołu, którą się komunikujemy,
no i mamy również możliwość wysłania tam nagłówków czy argumentów,
w odpowiedzi od serwera z kolei dostajemy tzw.
response, który też ma swoje odpowiednie
nagłówki, ale przede wszystkim body, czyli treść tego response,
no i kod statusu, który informuje nas, że albo wszystko się udało, albo np.
serwerowi nie udało się zrealizować
naszego żądania czy to z powodu błędu klienta np.
404, że nie ma takiego zasobu albo z powodu błędu błędu serwera,
czyli te mogą być 5 setki.
Kolejno mamy różne właściwości tej składni naszego JSON, o którym rozmawialiśmy.
Mieliśmy albo XML, albo JSON.
Jeżeli będziesz słyszał o czymś takim jak API np.
REST, REST API albo SOAP API
generalnie jest to po prostu nadbudowa tego, o czym rozmawialiśmy.
O to, że są jakieś konkretne reguły dotyczące tworzenia właściwych endpointów,
nazywania ich, tworzenie tam liczby mnogiej czy pojedynczej
i właśnie to określa się np.
resetem w odniesieniu do takich API, które są tworzone głównie na JSON.
Natomiast API SOAP będzie z kolei zestawem reguł nawet trochę bardziej restrykcyjnym
dotyczącym samej architektury i tworzenia API opartego na XML.
W związku z tym jest to jakby kolejna warstwa, na co programiści się umówili,
jak będą tworzyć te API tak żeby one były dosyć intuicyjne chociaż mimo wszystko
będzie potrzebna na pewno lektura dokumentacji.
Jeśli chodzi o samego JSON, to pamiętaj, że mieliśmy tam też tablice,
tablice asocjacyjne, tablice zawierające różne elementy,
tam były składniki do pizzy, ale mogliśmy mieć też obiekty takie jak np.
cały użytkownik, którego mogliśmy w ten sposób tworzyć albo np.
aktualizować.
Mieliśmy też proste pary klucz wartość.
Jeżeli były one dodane w adresie URL tworzyły tak zwany query string,
czyli mogliśmy w ten sposób też przekazać jakieś dane do serwera.
Czym się różnią te query stringi, czyli te tzw.
argumenty, te parametry, które przekazujemy od np.
nagłówków,
w zasadzie technicznych różnic trochę jest, ale w sumie nagłówki
pamiętaj, że są to te metadane, które
dostaje od nas serwer, jakieś meta informacje niewidoczne dla użytkownika,
natomiast w samych parametrach będziemy przekazywać te właściwe dane, podobne do
tych, które przekazujemy w samej treści, czyli w body takiego zapytania.
Jeżeli takie zapytanie jest krótkie np.
chcemy wygenerować proste zamówienie i chcemy przekazać imię, nazwisko i rodzaj
zamówienia, to te trzy rzeczy moglibyśmy łatwo przekazać w query stringu też jako te
właściwe dane dla serwera, na podstawie którego on wygenerował by np.
jakąś fakturę albo stworzył jakieś zamówienie.
Następnie mamy autentykację, czyli proces, w którym klient dostarcza
swoją tożsamość do serwera i w tym mamy credentiale tak zwane,
czyli takie te sekretne części informacji takie jak hasło czy np.
nazwa użytkownika, jak również różne rodzaje autentykacji, czyli np.
tą podstawową loginem i hasłem.
Ale też mówiliśmy o oAUTH w wersji 1, 2, gdzie mieliśmy te sekretne klucze i ta
komunikacja była tam trochę trudniejsza, bo wymagała różnych odpowiedzi.
Nie wchodziliśmy za mocno w szczegóły, ale
chciałem, żebyś znał te podstawowe terminy.
W wyniku takiej bardziej złożonej autentykacji użytkownika, gdzie wymieniane
są różne dane, jakieś sekretne klucze, czy np.
wysyłany jest jakiś access token, czyli właśnie taki token, który kawałek kodu,
który pozwala na zautoryzowanie się w aplikacji, ale jednocześnie te bardziej
skomplikowane formy autentykacji umożliwiają też operowanie czymś takim, co
nazywa się scope, czyli powiedzmy jakiś zakres, na którym dany
użytkownik może dokonywać zmian, modyfikacji i tak dalej.
W ten sposób możemy dla konkretnych
użytkowników czy dla konkretnych osób, które się u nas autoryzują w jakiś
sposób zawęzić dostęp do pewnych informacji, np.
uniemożliwić osobom niepowołanym usuwanie rekordów z naszej bazy.
Kolejno mamy coś takiego jak zasób. Może to być jakiś
obiekt. Najczęściej to jest rzeczownik, czyli np.
jakieś zamówienie albo jakiś konkretny klient, do którego możemy się dostać.
I często mówiąc o endpointach, czyli tych
konkretnych adresach URL, które funkcjonują w ramach naszego API
jeśli np. weźmiemy API REST, to takim endpointem
będzie właśnie najczęściej zasób, czyli ten adres URL będzie kierował np.
do konkretnej osoby czy do konkretnego zamówienia, które mamy.
Kolejno mamy coś takiego jak Pooling i Long Pooling oraz Webhooks, czyli te metody
dostępu do danych Poling, gdzie było to cały czas odpytywanie.
W przypadku np.
Ubera mało efektywne
jeżeli ktoś stoi na skrzyżowaniu a my marnujemy zasoby serwera.
Później było Long Pooling trochę bardziej wydajne, no i w końcu Webhooks, gdzie
powiedziałem Ci, że klient jednocześnie może być jakby serwerem, czyli dostaje ten
swój endpoint, z którym może się serwer komunikować.
I to jest tak naprawdę wszystko, co
chciałem powiedzieć Ci w tym kursie i w tej lekcji.
Mam nadzieję, że nauczyłeś się czegoś pożytecznego.
Do usłyszenia w kolejnych materiałach.