From 50617568a5bb669f565aa5aab73a3bd0ce785e78 Mon Sep 17 00:00:00 2001
From: Piotr Maslanka <piotr.maslanka@henrietta.com.pl>
Date: Thu, 16 Mar 2017 03:45:28 +0100
Subject: [PATCH] 15 pos for lab1

---
 build.py      |  2 +-
 src/lab1.json | 21 +++++++++++++++++--
 src/lab1.md   | 58 ++++++++++++++++++++++++++++++++++++++++++++++++---
 3 files changed, 75 insertions(+), 6 deletions(-)

diff --git a/build.py b/build.py
index fbc68fd..1fde52d 100644
--- a/build.py
+++ b/build.py
@@ -42,5 +42,5 @@ if __name__ == '__main__':
             labout.write(plab.encode('utf8'))
             labout.write(footer_bin)
 
-        os.system(('pandoc '+dist_lp+'%s.md -s -o %s%s.pdf') % (dist_lp, ex_no, dist_lp, ex_no))
+        os.system(('pandoc %s%s.md -s -o %s%s.pdf') % (dist_lp, ex_no, dist_lp, ex_no))
         os.unlink(dist_lp+'%s.md' % (ex_no, ))
diff --git a/src/lab1.json b/src/lab1.json
index 0a6a4b9..acd8700 100644
--- a/src/lab1.json
+++ b/src/lab1.json
@@ -27,7 +27,24 @@
     "http_hostname": "www.python.org"
   },
   {
-    "http_hostname": "pl.wikipedia.org"
+    "http_hostname": "www.mozilla.org"
+  },
+  {
+    "http_hostname": "cia.gov"
+  },
+  {
+    "http_hostname": "www.interia.pl"
+  },
+  {
+    "http_hostname": "uokik.gov.pl"
+  },
+  {
+    "http_hostname": "www.w3.org"
+  },
+  {
+    "http_hostname": "www.icann.org"
+  },
+  {
+    "http_hostname": "www.cert.pl"
   }
-
 ]
\ No newline at end of file
diff --git a/src/lab1.md b/src/lab1.md
index f6b9a74..ca9e085 100644
--- a/src/lab1.md
+++ b/src/lab1.md
@@ -85,7 +85,7 @@ programy, które mają z nich korzystać.
     Z ktĂłrego roku jest obecnie wykorzystywana wersja HTTP - HTTP/1.1?
 
 Pobierz [PuTTY](http://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html). 
-PuTTY jest uniwersalnym klientem protokołów tekstowych. Możemy więc nim obsłużyć wiele 
+PuTTY jest terminalem, czyli uniwersalnym klientem protokołów tekstowych. Możemy więc nim obsłużyć wiele 
 różnych protokołów. Zazwyczaj korzystają z niego administratorzy do logowania na serwery,
 ale możemy nim również obsłużyć HTTP (choć nie jest to wygodne). 
 
@@ -109,7 +109,7 @@ Znajdź w sieci Internet, jak wygląda przykładowe żądanie i odpowiedź HTTP.
 W pierwszej linii zawarto tzw. metodę HTTP oraz wersję protokołu. Następnie występuje seria nagłówków
 żądania, czyli par _nazwa nagłówka_ - _wartość_, które klient decyduje się podać serwerowi. 
 
-    Czy przy użyciu PuTTY mógłbyś użyć protokołu HTTP/2.0?
+    Czy przy użyciu PuTTY mógłbyś użyć protokołu HTTP/2.0? Dlaczego?
 
 Gdy to zrobisz, uruchom PuTTY. Istotne są trzy pola:
 * **Host Name** - nazwa docelowej strony. W twoim przypadku wpisz tu **$http_hostname$**
@@ -132,4 +132,56 @@ HTTP o Twoją stronę, sugerując się znalezionym przykładem.
     na adres IP przed połączeniem (a nie przesłany do serwera),
     spróbuj uzasadnić dlaczego.
    
-sds
+Zaobserwuj odpowiedź. Składa się ona również z dwóch części - z listy nagłówków,
+oraz tzw. ciała. Tutaj odpowiedź była tekstem - kodem HTML. Był on zrozumiały dla człowieka.
+To, czym odpowiada serwer, znajduje się w nagłówku jego odpowiedzi jako *Content-Type*.
+
+    Kto przydziela typy MIME? Jakie typy MIME mogą mieć dokumenty Microsoft Word?
+    
+Spróbujmy otrzymać kod błędu. Kody błędów z winy klienta (czyli nas) to 4xx, a z winy
+serwera to 5xx. Dużo łatwiej spowodować ten pierwszy, niż drugi. Nie każdy serwer
+HTTP na te same klasy błędów odpowiada w ten sam sposób. Kodom błędów (lub sukcesu)
+towarzyszy zazwyczaj krĂłtki opis, np. *200 OK*, albo *404 Not Found*. 
+
+    Sprowokuj serwer, z którym się łączysz, do zwrócenia błędu 404.
+    Zapisz przebieg sesji.
+
+Spróbujmy teraz pobrać zasób binarny. Ponownie za pomocą PuTTY połącz się ze stroną,
+ale tym razem pobierz zasĂłb */favicon.ico*.
+
+*/favicon.ico* to nazwa zasobu, który reprezentuje małą ikonkę stony. Zazwyczaj ikonka
+ta widoczna jest na pasku, obok nazwy karty. Jest to nazwa zwyczajowa, czyli jeśli 
+przeglądarka stwierdzi istnienie takiego zasobu, to użyje go (chyba że twórca
+strony zażyczył sobie inaczej).
+ 
+    Pobierz *favicon.ico* z $http_hostname$.
+    Zanotuj typ MIME odpowiedzi, oraz całą sesję HTTP.
+    
+    Jaki kod odpowiedzi otrzymałeś? Znajdź kolegę/koleżankę z innym kodem.
+    Zanotuj jego/jej numer zadania.
+
+Serwer HTTP może więc przesyłać różne typy plików. Klient również może to zrobić.
+Musi on skorzystać jedynie z metody umożliwiającej przesłanie tzw. _ciała_. Wykorzystywane
+jego to do wysyłania formularzy, plików, itp.
+
+    Ustal jakie metody HTTP pozwalają na przesłanie ciała poprzez klienta.
+
+Istnieją również inne protokoły tekstowe. Z nich również można - w pewnym stopniu -
+korzystać za pomocą PuTTY. Jak zobaczyliśmy nie jest to wygodne, ale pozwala nam
+dobrze zrozumieć protokół.
+
+    Przypomnij sobie definicję przeglądarki internetowej. Z jakiej właśnie skorzystałeś?
+    
+    Wymień 3 rzeczy, które również można zrobić za pomocą PuTTY, oraz nazwę protokołu,
+    który tą rzecz umożliwi.
+    
+# Zadania dodatkowe
+
+Odpowiedzi zamieść w sprawozdaniu.
+
+1. Najnowszym kodem błędu HTTP jest 451. Co on oznacza? Skąd taka wartość (i dlaczego)?
+2. HTTP w szyfrowanym wydaniu nazywa się HTTPS. Co zmieniono w protokole? Spróbuj narysować
+   jego model ISO OSI. Czym różni się od zwykłego HTTP? 
+
+
+
-- 
GitLab