Po lekturze dwóch poprzednich artykułów tej serii ("Programista" nr 114 i "Programista" nr 115) wiemy już, jak skonfigurować własną sieć domową (rozumiemy działanie routerów i switchy) oraz jak uruchomić prosty serwis internetowy stworzony przez kogoś innego (potrafimy przypisać nazwy DNS do konkretnych adresów IP). Teraz nadszedł czas, aby zgłębić „język”, którym posługuje się większość serwisów – protokół HTTP. Dokładne jego zrozumienie otworzy nam drogę do samodzielnej implementacji serwisów, lepszego rozumienia komunikacji internetowej na poziomie aplikacji, a także do efektywnego wykrywania i naprawiania problemów z komunikacją...
Zagadnienia poruszane w tym artykule:
- Czym jest HTTP?
- Architektura HTTP;
- Wiadomości;
- URI/URL;
- Kodowanie URI;
- Żądania i odpowiedzi;
- cURL i Wireshark;
- Zapytanie i jego nagłówki;
- Odpowiedź i jej nagłówki;
- Ciało wiadomości;
- GET, HEAD;
- PUT, POST;
- DELETE;
- Po co wersja HTTP w odpowiedzi?
- HTTP a połączenia TCP;
- Proxy – mitmproxy;
- Podglądanie ruchu sieciowego;
- Modyfikacja ruchu sieciowego na żywo;
- Cache;
- Świeżość odpowiedzi;
- Odświeżanie odpowiedzi i żądania warunkowe;
- Unikanie kolizji;
- Różnice między wersjami protokołu HTTP/1.1 a jego następcami;
- Protokół tekstowy a binarny;
- Kompresja danych;
- Multiplexing;
- Serwer push;
- HTTP 3;
- Websockets.
Artykuł pochodzi z magazynu Programista nr 116 (1/2025). Szczegółowy spis treści wydania nr 116: https://programistamag.pl/programista-1-2025-116/
Autorem artykułu jest Dawid Pilarski. Z wykształcenia automatyk i robotyk, a z zawodu i pasji programista. w tej chwili Software Engine-er, Security Champion i Tech Lead w TomTom. Wolny czas przeznacza na zgłębianie wiedzy o bezpieczeństwie i sieciach. Można się z nim bezpieczeństwie i sieciach.