Q&A - jak pobrać stronę bez używania przeglądarki?

Q&A - tak nazwaliśmy nową sekcję wpisów, każdy wpis będzie składał się z pytania i krótkiej odpowiedzi, wytłumaczenia, lub po prostu skryptu. Mamy nadzieję, że przypadnie Wam do gustu. ;-)

Czasami gdy musisz szybko sprawdzić, czy serwer zwraca dane, lub chcesz podejrzeć nagłówki jakie zwraca serwer możesz to zrobić bezpośrednio z konsoli, używając telnet'a lub netcat'a. Przeglądarka wysyła określony zestaw nagłówków na port 80 serwera i w odpowiedzi otrzymuje nagłówki serwera oraz kontent (zawartość strony). My zrobimy dokładnie to samo, ale bez używania wspomagaczy ;-)

Podstawowy request może wyglądać tak:

# telnet www.varlog.pl 80

GET / HTTP/1.0
Host: www.varlog.pl

[enter x2]

Dwie linie puste oznaczają koniec naszego żądania [enter x2]. Dopiero po wysłaniu tych linii, serwer zabierze się za przetwarzanie naszego requestu i zwróci nam odpowiedź. Podczas wielokrotnych testów korzystanie z telnetu może okazać się uciążliwe, wtedy użyjemy netcat'a:

# printf "GET / HTTP/1.0rnHost: www.varlog.plrnrn" | nc www.varlog.pl 80

Rezultat dla tych dwóch poleceń będzie identyczny, netcat ma ten plus, że nie wymaga ręcznego wpisywania za każdym razem całego żądania.

  • rez

    HTTP w wersji 1.0 nie obsługuje nagłówka Host. To trochę 'uprzejmość' serwerów HTTP, że mimo takiej wersji protokołu interpretują nagłówek, który wskazuje vhost, do którego próbujesz się odwołać - cud na Wisłą ;-)

  • Pingback: Basic Auth – proste zabezpieczenie zasobów WWW()