Podstawy usług sieciowych - ćwiczenia 2
Spis treści
Ilość punktów do zdobycia: 10
Porady
Zapytania HTTP w terminalu
Aby wykonać zapytanie HTTP w terminalu mając pełną kontrolę nad
wysyłanymi danymi, możesz przygotować sobie treść zapytania w
pliku
request.txt:
GET /sciezka/do/pliku HTTP/1.1 Host: www.wp.pl
(te dwie puste linijki na końcu pliku są istotne!)
Następnie wykonaj komendę:
cat request.txt | nc nazwa.domenowa.serwera.pl 80
Aby wysłać zapytanie, które zawiera konkretne Cookie, dodaj
odpowiedni nagłówek do request.txt:
GET /sciezka/do/pliku HTTP/1.1 Host: www.wp.pl Cookie: klucz=wartosc
1. Zadanie 1 - HTTP (3pkt)
Adres up.kuba-orlik.name/secret ujawni Ci sekretny
token - ale tylko po uprzednim zalogowaniu. Logowanie odbywa się
poprzez zrobienie zapytania GET na
up.kuba-orlik.name/login. Użyj telnet do
zdobycia treści tego tokenu.
W odpowiedzi podaj treść sekretu oraz komendy telnet, które należy wpisać, aby ten sekret uzyskać.
2. Zadanie 2 - cache (3 pkt)
Zbadaj za pomocą narzędzi deweloperskich w przeglądarce, jak wybrana przez Ciebie strona zachowuje się przy pierwszym załadowaniu, a jak przy wtórnym załadowaniu. Czy strona jest ustawiona tak, że przeglądarka poprawnie cache'uje odpowiedzi serwera, aby pobierać jak najmniej danych? Zrób zestawienie - ile danych (w kB) jest pobierane przy pierwszym wczytaniu strony, a ile przy wtórnym.
Hint: aby zasymulować pierwotne wczytanie strony, użyj skrótu
ctrl+shift+R.
Hint 2: Zwróć uwagę na ustawienie "disable cache" w network inspectorze.
3. Zadanie 3 (1pkt)
Zbadaj wybraną przez siebie stronę za pomocą narzędzia https://pagespeed.web.dev/. Co ją najbardziej spowalnia?
4. Zadanie 4 (3pkt)
Każde z następujących zapisów komunikacji w protokole HTTP zawiera jakąś nieprawidłowość - na poziomie treści, lub na poziomie składni. Wskaż i opisz nieprawidłowość dla każdego z nich
4.1. a)
> GET / HTTP/1.1 > Host: www.wp.pl < HTTP/1.1 200 OK < Server: nginx < Date: Tue, 08 Mar 2022 20:56:12 GMT < Content-Type: text/html < Connection: keep-alive < < Critical server error (500)
4.2. b)
> GET / HTTP/1.1 > Host: http://up.kuba-orlik.name < HTTP/1.1 200 OK < Server: nginx < Date: Tue, 08 Mar 2022 20:56:12 GMT < Content-Type: text/html < Connection: keep-alive < < Hello
4.3. c)
> GET / HTTP/1.1 > Host: up.poznan.pl < HTTP/1.1 301 Moved Permanently < Content-Type: text/html < < Please visit https://up.kuba-orlik.name instead
4.4. d)
> GET / HTTP/1.1 > Host: up.poznan.pl < HTTP/1.1 500 Internal Server Error < Content-Type: text/html < < Not found