Zanim przystąpimy do śledzenia ruchu sieciowego za pomocą Fiddlera warto przyjrzeć się, jak wygląda komunikacja między przeglądarką a serwerem. Komunikacja między przeglądarką a serwerem odbywa się za pomocą protokołów, są to ustalone schematy wiadomości.
Najpopularniejsze z nich to HTTP, HTTPS, FTP:
- HTPP (Hyper Text Transfer Protocol) – za pomocą protokou HTTP przesyła się żądanie udostępnienia dokumentów WWW, można też przesyłać informacje z formularzy;
- HTTPS (Hyper Text Transfer Protocol Security) – szyfrowana wersja protokołu HTTP - to za jego pomocą logujemy się do kont bankowych;
- FTP (File Transfer Protocol) – protokół transferu plików.
Najbardziej popularny w codziennej komunikacji jest protokół HTTP. Po wpisaniu adresu w przeglądarce wysyłane jest zapytanie HTTP (request) do serwera, od serwera otrzymujemy odpowiedź HTTP (response).
Zapytanie wysyłane przez przeglądarkę zbudowane jest z nagłówka (header) i ciała (body), które nie zawsze musi występować (może być puste). W nagłówku zapytania przesyłane są m.in. metody, które określają, jakie działania mają być wykonane w komunikacji między przeglądarką a serwerem. Warto wspomnieć o najważniejszych metodach:
GET – służy do pobierania zawartości, wyświetlania strony. Dane przekazane za pomocą tej metody są przekazywane w adresie.
POST – metoda przesyłania danych. Za jej pomocą często przesyłane są dane na formularzach.
Fiddler - narzędzie do debugowania sieci
Fiddler to narzędzie, które pozwala na monitorowanie oraz modyfikowanie ruchu HTTP/HTTPS pomiędzy komputerem a witrynami i aplikacjami webowymi. Po wysłaniu zapytania przez przeglądarkę zapytanie ląduje w Fiddlerze. Następnie program przesyła je dalej do docelowego serwera, od którego otrzymuje odpowiedź. Odpowiedź przesyła do przeglądarki. Fiddler działa więc jako lokalne proxy.
Program pobieramy i instalujemy na dysku ze strony: https://www.telerik.com/download/fiddler
Praca z fiddlerem – obserwowanie ruchu sieciowego
Po zainstalowaniu możemy obserwować ruch z sieci, który używa protokołu HTTP. Aby przechwycić połączenia HTTPS musimy włączyć ustawienia w programie. W tym celu wybieramy: "Tools" > "Telerik Fiddler Options" > "HTTPS" > zaznaczamy "Capture HTTPS CONNECTs" i "Decrypt HTTPS traffic".
Aby rozszyfrować HTTPS Fiddler generuje certyfikat, który instalujemy na komputerze.
Do generewania ruchu sieciowego na potrzeby artykułu użyjemy przeglądarki Google Chrome i strony: http://automationpractice.com/index.php.
Filtrowanie wyników
Zanim zaczniemy obserwacje ruchu sieciowego warto ustawić sobie filtry, aby pokazywane były połączenia tylko z interesującej nas strony. Inaczej Fiddler będzie pokazywał cały ruch z sieci, co utrudni przeglądanie wyników.
Aby wyfiltrować połączenia z interesującej nas witryny wybieramy "Filters" w prawej części pulpitu.
W zakładce tej mamy możliwość filtrowania po wielu opcjach. Zaznaczamy checkbox "Use Filtres".
W obszarze "Hosts" wybieramy z listy rozwijalnej "Show only the following Hosts" i wpisujemy: "automationpractice.com".
Obserwowanie wyników
By podejrzeć ruch w przeglądarce przechodzimy na stronę: http://automationpractice.com/index.php
W Fiddlerze po lewej stronie mamy okno gdzie prezentowane są wyniki.
Pojedyncze zapytanie (request) i odpowiedź (response) w Fiddlerze nazywane jest sesją. Aby zobaczyć request i response zaznaczamy pojedynczą sesję i wybieramy zakładkę "Inspectors".
Za pomocą zakładki "Statistics" możemy zobaczyć statystyki dotyczące pojedynczej lub kilku sesji. W zakładce "Timeline" zobczymy, ile czasu trawało pojedyczne zapytanie.
Dla sesji dostępnych jest wiele opcji, takich jak:
- ponowne wysyłanie zapytań - możemy ponownie wysłać zapytanie, zaznaczając jedną lub kilka sesji naraz. By to wykonać wybieramy prawy klawisz myszy i z dostępnych opcji wybieramy "Replay". Do wyboru mamy znowu kilka opcji. Możemy też zaznaczyć kilka sesji i zaznaczyć Shift+R, następnie wpisać, ile razy chcemy powtórzyć wybrane sesje;
- zapisywanie sesji - sesje możemy zapisać. Jest możliwość zapisania też pojedynczego requesta i responsa;
- porównywanie sesji - jeżeli mamy narzędzie do porównywania plików WinMerge albo WinDiff, możemy porównać dwie sesje.
Narzędzie WinMerge możemy zainstalować ze strony: http://winmerge.org/downloads/?lang=pl
Aby porównać sesje w Fiddlerze zaznaczamy dwie sesje (Shift + lewy klawisz myszki) i wybieramy "Tools" > "Compare session". Pojawia się okno z zaznaczonymi na żółto różnicami między sesjami.
Przydatne linki:
- http://www.telerik.com/fiddler - oficjalna strona Fiddlera; znajdziemy na niej dodatki oraz pomoce w postaci dokumentacji i filmów
- http://kobietydokodu.pl/niezbednik-juniora-protokol-http/ - bardziej szczegółowy opis, jak działa komunikacja między przeglądarką a serwerem
- https://pl.wikipedia.org/wiki/Hypertext_Transfer_Protocol - omówienie protokołu HTTP
- http://threats.pl/bezpieczenstwo-aplikacji-internetowych/absolutne-podstawy - tutorial z bezpieczeńswa aplikacji internetowych z wykorzystaniem Fiddlera
- http://testerzy.pl/narzedzia/fiddler-web-debugger - nasz opis narzędzia.
W drugiej części artykułu przedstawimy, jak modyfikować zapytania generowane z przeglądarki i odpowiedzi, które otrzymujemy od serwera.