Każde z poleceń posiada bogady opis dostępny po uruchomieniu:
man polecenie
gdzie polecenie
jest nazwą polecenia.
Poniżej podano przydatne albo niezbędne polecenia do wykonania ćwiczeń:
firefox
telnet
nc
sed
curl
(opcjonalnie)Uruchom Firefox/IceWeasel. Zainstaluj rozszerzenie LiveHTTP Headers (menu: Narzędzia/Dodatki).
Używając telnet zobacz jaki jest nagłówek oraz zawartość strony pod adresem: http://home.agh.edu.pl/~wojnicki/.
Czy dostęp do zasobu http://home.agh.edu.pl/~wojnicki/ może być realizowany poprzez protokół HTTP 1.1, czy tylko HTTP 1.0? Przetestuj.
Sprawdź, jaki typ odpowiedzi zwraca serwer przy zadaniu dostepu do zasobu http://google.com/. Co znaczy ten kod?
Używając metody GET zapytaj wyszukiwarkę Google o wyrazy: Informatyka Stosowana, wiedząc że wyrazy powinny być przekazane jako wartość atrybutu 'q' (np. zapytanie o haslo pies powinno wygladać następująco: http://www.google.pl/search?q=pies )
telnet
.
Jezeli google zamyka połączenie (timeout) użyj nc
zamiast telnet
, oraz umieść zapytanie w pliku:
nc google.com 80 < plik_z_zapytaniem
albo:
cat plik_z_zapytaniem | nc google.com 80
Podpowiedź: przeczytaj man nc
Zbadaj co zwraca HEAD
dla http://home.agh.edu.pl/wojnicki/. Porównaj z HEAD
dla http://home.agh.edu.pl/~wojnicki/. Zwróć uwagę na nagłówek Location
oraz status odpowiedzi serwera.
Zbadaj co zwraca GET
dla http://home.agh.edu.pl/~wojnicki/pic/me.jpg. Jaki jest typ danych zasobu?
Ile żądań (zapytań) mozna przesłać za pomocą jednego połączenia w przypadku HTTP/1.0 a ile w przypadku HTTP/1.1? Wypróbuj na dowolnie wybranym serwerze i zasobie.
Pobierz zasób http://paw.agh.edu.pl za pomocą HTTP/1.0. Operację ponów dla HTTP/1.1. Czy odpowiedzi są takie same? Dlaczego?
Używając nc
(netcat) i przekierowania standardowego wejscia/wyjscia pobierz zawartość witryny http://home.agh.edu.pl/~wojnicki/ i umieść w pliku w1.html.
Zapytanie HTTP można umieścić w pliku:
nc ..... < plik_z_zapytaniem
bądź też użyć echo oraz mechanizmu pipe:
echo -e 'GET .... \n\n' | nc ....
Nadobowiązkowe.
Netcat może również nasłuchiwać i odbierać połączenia na wskazanym porcie.
Dzięki temu w prosty sposób można np. przesyłać dowolne informacje pomiędzy węzłami w sieci.
Np. chcąc przesłać prosty komunikat, na węźle docelowym (charon.kis.agh.edu.pl
) należy uruchomić netcat w trybie nasłuchiwania, powiedzmy na porcie 1234:
nc -l 1234
Na węźle nadającym, można przesłać np. komunikat: Hello:
echo Hello | nc charon.kis.agh.edu.pl 1234
Oczywiście nic nie stoi na przeszkodzie, aby przesłać tą metodą dowolne dane np. pliki.
Używając np. sed
oraz wyrażeń regularnych usuń wszystkie znaczniki HTML z pliku w1.html, a wynik umieść w pliku w2.html.
Podpowiedzi:
sed 's/zrodlo/cel/g'
znajduje ciąg znaków 'zrodlo' oraz zastępuje go ciągiem znaków 'cel'. Ciąg 'zrodlo' może być wyrażeniem regularnym.
Wykonaj ćwiczenie 9 używając mechanizmu potoków (pipe):
echo .... | nc ... | sed ... | less
Gratulacje, właśnie zbudowałeś(aś) swoją własną przeglądarkę WWW ;)
Uwaga: W przypadku ćwiczenia 9 i 10 można dostać „dodatkowy punkt” - za rozwiązanie na zajęciach, albo nadesłanie rozwiązania mailem na adres prowadzącego nie poźniej niż do północy następnego dnia po zajęciach. Jeden punkt może zawarzyć na ocenie końcowej