Wróć do informacji o e-podręczniku Wydrukuj Pobierz materiał do PDF Pobierz materiał do EPUB Pobierz materiał do MOBI Zaloguj się, aby dodać do ulubionych Zaloguj się, aby skopiować i edytować materiał Zaloguj się, aby udostępnić materiał Zaloguj się, aby dodać całą stronę do teczki

Kiedy wpiszemy w przeglądarce adres strony internetowej, tak zwany adres URL (ang. Uniform Resource Locator), i wciśniemy klawisz ENTER na klawiaturze, nasza przeglądarka nawiązuje połączenie z serwerem, na którym dana strona jest przechowywana.

Po nawiązaniu połączenia z serwerem, przeglądarka, czyli klient usługi WWW, żąda od niego określonego zasobu – najczęściej pliku zawierającego treść strony. Jeśli serwer posiada żądany zasób, przesyła jego zawartość do przeglądarki, która interpretuje kod języka HTML, w którym strona została napisana i wyświetla użytkownikowi jej zawartość.

R1K4FaQ26fpWP
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY 3.0.

Oczywiście, tak to wygląda w dużym skrócie i uproszczeniu. W rzeczywistości proces ten jest nieco bardziej złożony. Weźmy przykładowy adres internetowy:

http://www.alamakota.pl/kotleon.html

Po jego wpisaniu i zatwierdzeniu klawiszem ENTER, przeglądarka w pierwszej kolejności sprawdza rodzaj protokołu (zazwyczaj jest to HTTP lub HTTPS), a następnie nazwę domeny internetowej (domena internetowa to inaczej adres strony), a  dopiero na końcu jest brana pod uwagę nazwa konkretnego pliku zwierającego jej treść.

R1ME2cn0qXSbh1
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY 3.0.

Po sprawdzeniu wskazanych elementów przeglądarka odwołuje się do serwera DNSSerwer DNSDNS w celu zamiany nazwy mnemonicznej (domenowej), czyli www.alamakota.pl na adres IP serwera, na którym ta strona jest przechowywana.

RrhnCymJjwH5b
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Znając już ten adres IP serwera, przeglądarka naszego urządzenia wysyła żądanie do serwera WWW o udostępnienie pliku kotleon.html znajdującego się w domenie alamakota.pl. Jeśli dany serwer posiada zasób, w odpowiedzi przesyła stosowny komunikat wraz z zawartością żądanego pliku. Zawartość tego pliku, czyli kod HTML, jest przez przeglądarkę interpretowany i wyświetlany jako strona WWW.

R1axdv1ZVdGL1
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY 3.0.

Protokół HTTP standardowo działa na porcie 80 i definiuje kilka podstawowych rodzajów wiadomości, czyli żądań, za pomocą których klient komunikuje się z serwerem WWW. Do najważniejszych z nich należą żądania:

  • GET

oraz

  • POST

Metoda GET

GET służy do żądania od serwera strony WWW. Nagłówek komunikatu/metody GET wygląda mniej więcej tak:

GET /kotleon.html HTTP/1.1

Oprócz nazwy żądanego zasobu zawiera również stosowaną wersję protokołu. Gdy serwer taką wiadomość/takie żądanie odbierze, odpowiada klientowi stosownym komunikatem:

HTTP/1.1 200 OK /kotleon.html

oraz żądanym zasobem (plikiem kotleon.html).

W żądaniu GET są zazwyczaj zawarte również informacje o nazwie domeny internetowej (np. wp.pl), przeglądarki, z jakiej zostało wysłane żądanie, akceptowane przez przeglądarkę typy plików, preferowany język strony czy kodowanie znaków.

W odpowiedzi serwera znajdują się takie informacje, jak: czas serwera, nazwa aplikacji serwera (np. APACHE) czy czas wygaśnięcia dokumentu.

Jeśli z jakiś przyczyn serwer nie może odesłać zasobu, odsyła komunikat błędu, np. 404, który informuje, że żądany zasób nie został znaleziony, lub 403 informujący o zabronionym dostępie do zasobów.

Wybrane kody komunikatów i błędów są widoczne w poniższych tabelach.

Kody informacyjne:

KOD

OPIS

ZNACZENIE

100

Continue

Prośba o dalsze wysyłanie zapytania

101

Switching Protocols

Zmiana protokołu

110

Connection Timed Out

Przekroczono czas połączenia. Serwer zbyt długo nie odpowiada.

111

Connection refused

Serwer odrzucił połączenie

Kody powodzenia:

KOD

OPIS

ZNACZENIE

200

OK

Odesłano zawartość żądanego dokumentu

201

Created

Wysłany dokument został zapisany na serwerze

202

Accepted

Zapytanie zostało przyjęte do obsłużenia, lecz jego zrealizowanie jeszcze się nie skończyło

204

No content

Brak zawartości – serwer zrealizował zapytanie klienta i nie zwraca żadnej treści

205

Reset Content

Serwer zrealizował zapytanie i klient powinien przywrócić pierwotny wygląd dokumentu

Kody błędów klienta:

KOD

OPIS

ZNACZENIE

400

Bad Request

Żądanie nie może być obsłużone przez serwer z powodu błędu klienta

401

Unauthorized

Żądanie zasobu, który wymaga uwierzytelnienia

403

Forbidden

Serwer zrozumiał zapytanie, lecz konfiguracja bezpieczeństwa zabrania mu zwrócić żądany zasób

404

Not Found

Serwer nie odnalazł zasobu według podanego URL

405

Method Not Allowed

Metoda zawarta w żądaniu nie jest dozwolona dla wskazanego zasobu

406

Not Acceptable

Zażądany zasób nie jest w stanie zwrócić odpowiedzi mogącej być obsłużonej przez klienta

407

Proxy Authentication Required

Wymagane uwierzytelnienie do serwera pośredniczącego

408

Request Timeout

Koniec czasu oczekiwania na żądanie – klient nie przesłał zapytania do serwera w określonym czasie

409

Conflict

Żądanie nie może być zrealizowane, ponieważ występuje konflikt z obecnym statusem zasobu

411

Length required

Wymagana długość – serwer odmawia zrealizowania zapytania ze względu na brak nagłówka Content‑Length w zapytaniu

415

Unsupported Media Type

Nieznany sposób żądania – serwer odmawia przyjęcia zapytania, ponieważ jego składnia jest niezrozumiała dla serwera

Kody błędów serwera:

KOD

OPIS

ZNACZENIE

500

Internal Server Error

Wewnętrzny błąd serwera – serwer napotkał problemy, które uniemożliwiły zrealizowanie żądania

501

Not Implemented

Serwer nie dysponuje funkcjonalnością wymaganą w zapytaniu

502

Bad Gateway

Błąd bramy – serwer – spełniający funkcję bramy lub pośrednika – otrzymał niepoprawną odpowiedź od serwera nadrzędnego i nie jest w stanie zrealizować żądania klienta

503

Service Unavailable

Usługa niedostępna – serwer nie jest w stanie w danej chwili zrealizować zapytania klienta ze względu na przeciążenie

504

Gateway Timeout

Przekroczony czas bramy – serwer – spełniający funkcję bramy lub pośrednika – nie otrzymał w ustalonym czasie odpowiedzi od wskazanego serwera HTTP, FTP, LDAP itp. lub serwer DNS jest potrzebny do obsłużenia zapytania

505

HTTP Version Not Supported

Nieobsługiwana wersja HTTP – serwer nie obsługuje bądź odmawia obsługi wskazanej przez klienta wersji HTTP

Metoda POST

Kolejny typ komunikatu/metody to POST. Jego funkcja jest odmienna od funkcji metody GET, ponieważ GET prosi o przesłanie danych z serwera, a POST służy do przesyłania danych na serwer.

Kiedy storna internetowa zawiera jakiś formularz wysyłający dane na serwer, np. formularz rejestracji, formularz danych logowania czy też formularz zakupów internetowych, to dane, które w nim umieścimy, są wysyłane do serwera właśnie za pomocą metody POST.

R9AXHwa8h7sKe1
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY 3.0.

HTTPS czy szyfrowany protokół HTTP

Protokół HTTP, mimo że bardzo popularny, chyba najczęściej stosowany ze wszystkich protokołów warstwy aplikacji, nie jest całkowicie bezpieczny. Metoda POST przesyła dane do serwera jawnym tekstem, a to znaczy, że dane, które do serwera przesyłamy, nie są w żaden sposób chronione, nie są zaszyfrowane. Kiedy uda się przechwycić transmisję między klientem a serwerem, można odczytać informacje, jakie chcemy przesłać na serwer. Zazwyczaj dane, które do serwera przesyłamy są danymi, którymi nie chcemy dzielić się z innymi (loginy, hasła do usług) i wolelibyśmy, aby nie zostały one przez nikogo przechwycone.

R1HjO5af9myOK
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY 3.0.

Korzystanie z nieszyfrowanej komunikacji w przypadku stron, do których się logujemy (fora internetowe, serwisy społecznościowe, poczta elektroniczna), jest bardzo niebezpieczne. Z tego powodu obecnie większość stron WWW, na których istnieje możliwość przesłania na serwer jakieś informacji, czyli np. na tych stronach, gdzie jest konieczne logowanie, jest stosowany protokół HTTPS, szyfrujący komunikację między klientem a serwerem. Również na stronach internetowych, gdzie nie jest wymagane podawanie jakichkolwiek danych coraz częściej można spotkać szyfrowaną wersję protokołu HTTP.

Ciekawostka

Jeśli posiadasz stronę w internecie, warto zadbać, aby korzystała ona z protokołu HTTPS, a nie „zwykłego” HTTP. Po pierwsze: będzie to informacja dla użytkowników twojej strony, że dbasz o ich dane, a po drugie: najpopularniejsza wyszukiwarka internetowa wyżej pozycjonuje strony, które stosują protokół HTTPS. Jak skonfigurować taki protokół, dowiesz się od firmy, która hostuje twoją stronę WWW.

Weryfikacja, czy dana strona WWW stosuje szyfrowanie komunikacji między klientem a serwerem, jest bardzo prosta. Wystarczy, że adres strony zaczyna się od HTTPS, a przed adresem strony jest widoczny symbol kłódki:

RKe5vL3yziPV81

Protokół HTTPS to w praktyce połączenie protokołu HTTP z technikami szyfrującymi zwanymi SSLSSLSSL (ang. Secure Socket Layer). Obecnie do szyfrowania komunikacji  stosuje się specjalną odmianę tych technik zwaną TLS (ang. Transport Layer Security), a dokładniej jej wersję oznaczoną numerem 1.2 lub 1.3.

TLS stosuje certyfikaty poświadczające wiarygodność serwera WWW, z którym łączy się klient. Certyfikat to elektroniczny dokument, który poświadcza, że serwer jest bezpieczny i jest tym, za kogo się podaje. Jeśli chcesz, aby twoja strona oferowała szyfrowany kanał komunikacji, musisz taki certyfikat posiadać. Niektóre z nich są bezpłatne (Let's Encrypt), ale większość z nich wymaga opłaty, która musi być odnawiana co jakiś czas. Możemy wyróżnić trzy główne rodzaje certyfikatów SSL:

  1. Certyfikat DV (ang. Domain Validation)  – potwierdza autentyczność domeny (adresu internetowego).

  2. Certyfikat OV (ang. Organization Validation) – potwierdza autentyczność domeny oraz jej właściciela.

  3. Certyfikat EV (ang. Extended Validation) – rozszerzona wersja certyfikatu, która potwierdza autentyczność domeny, jej właściciela, a także wyświetla zielony pasek w polu adresu przeglądarki. Ten rodzaj certyfikacji stosują zazwyczaj duże instytucje, np. banki.

Słownik

Serwer DNS
Serwer DNS

serwer posiadający bazę danych adresów internetowych (domenowych) i odpowiadających im adresów IP serwerów, na których te strony są przechowywane

SSL
SSL

zbiór algorytmów i technik zapewniających szyfrowany kanał komunikacji