Back to Main Page

Lernjournal 06.05.2022

1. Auftrag

Aufbau einer URL

Beispiel einer URL:

http://mypage.example.com:80/index.html?page=0#Start
|     |      |       |   |   |         |     |     |
| [1] |  [2] |  [3]  |[4]|[5]|   [6]   | [7] | [8] |

  1. Protokoll Meistens entweder http oder https. Der Unterschied besteht darin, dass https verschlüsselt ist und http nicht.
  2. Subdomain Ist nicht zwingend notwendig. Kann aber z.B. dafür verwendet werden, um die verschiedenen Bereiche einer Webseite sauber voneinander zu trennen.
  3. Domain Die Domain der Website wird anschliessend dazu verwendet, vom DNS Server die dazu passende IP Adresse herauszufinden.
  4. Top-Level Domain Die TOP-Level Domain zeigt primär an, welcher DNS Server für die Verwaltung der IP Adresse zuständig ist.
  5. Port Der Port zeigt genauer an, welcher Dienst auf dem Server angesprochen wird. Er muss aber nur dann mitgesendet werden, wenn nicht der default Port verwendet wird. Der default Port von HTTP ist 80 beziehungsweise 443 von HTTPS.
  6. Pfad auf der Webseite Zeigt der Pfad auf der Webseite auf.
  7. Parameter Sind Parameter die mitgesendet werden.
  8. Fragmen Kann dazu verwendet werden, um eine Position in der Website genauer anzugeben.

Ablauf bei einem Request

Client                          Router                                DNS Server

_________________                                                     ______________
|  ____________ |                      ◜   ◝                        |           •• |
| |           | |                        ◜◝                         |──────────────| -----┆
| |           | |      [1]                |             [2]          |           •• |      ┆ [3]
| |___________| |   ----------> __________|____  ----------------->  |──────────────| <----┆
|_______________|      [5]      |        ° ° ° |        [4]          |           •• |
\ _\_\_\_\_\_\_\ \ <----------- |______________|  <----------------  |──────────────|
 \ _\_\_\_\_\_\_\ \    [6]                                           |______________|
  \________________\ --------->        ┆
                                       ┆
Webserver                              ┆
_______________                        ┆ [7]
|           •• |                       ┆
|──────────────| <-------------------- ┆
|           •• |
|──────────────|
|           •• |
|──────────────|
|______________|
  1. Das erste was der Client (Computer) nach dem Aufrufen einer Website wie z.B. `http://www.example.com macht, ist, dass er in seinem internen DNS cache nachschaut ob da die IP Adresse bereits aufgelöst ist. Falls dies der Fall ist, kann Punkt 1-5 geskipt werden.
  2. Falls der Client den DNS Namen nicht kennt, sendet er eine DNS Anfrage an den Rooter.
  3. Der Rooter leitet anschliessend diese Anfrage weiter an den Root DNS Server.
  4. Der Root DNS Server kennt die IP Adresse selber nicht, er weiss aber, dass es sich dabei ume eine .com Adresse handelt. Also leitet er diese weiter an den .com DNS Server. Falls dieser auch nicht die IP-Adresse Auflösung kennt leitet er die Anfrage auch weiter an einen Sub DNS Server.
  5. Anschliessend wird der DNS Response wieder zurück an den Rooter des Client gesendet.
  6. Der Rooter leitet diese dann weiter an den Client. Nun kennt der Client die IP Adresse des Servers.
  7. Anschliessend sendet der Client eine Anfrage an die benannte IP Adresse. Der Rooter überprüft nun, ob es sich dabei um eine private (Interne) oder eine öffentliche (Externe) IP-Adresse handelt.
  8. Je nachdem, um welchen IP-Adress Typ es sich handelt, wird die IP-Adresse an einen öffentlichen oder einen privaten (internen) Server weitergeleitet.

    IPV4-Adressen

    Eine IPV4 Adresse besteht immer aus 4 Teilen zu je 8 Bit, die mit Punkten voneinander getrennt sind. Es gibt also insgesam in etwa 4**109 = 4 Milliarden IPV4 Adressen. Da nach einer bestimmten Zeit die IPV4 Adressen knapp wurden, kam man auf die Idee, 2 verschiedene IPV4 Adressbereiche zu erstellen (privater und öffentlicher Bereich). Dadurch können Geräte wie IoT-Geräte, Computer usw, welche nicht konstant online sind, sich eine öffentliche IPV4 Adresse teilen (Router). Die genauere Unterscheidung zwischen den verschiedenen Geräte in einem Netzwerk, wird anschliessend über Private IPV4 Adressen gelöst.

    Private Bereiche

    Grundsätzlich gibt es nur 3 private IPV4 Adress-Bereiche. Diese IP Adressen sind speziell für diesen Zweck reserviert. Die IP-Bereiche unterscheiden sich grundsätzlich in der Anzahl der mögliche IP Adressen. Die Brodcast Adresse ist eine Adresse, über die man alle IP Adressen in einem Netzwerk ansprechen kann. Sie entspricht Immer der letzen IP-Adresse im Netzwerk.

    von            bis              Broadcast Adresse    Möglichkeiten
    10.0.0.0    -  10.255.255.255	  10.255.255.255      2**24
    172.16.0.0  -  172.31.255.255	  172.31.255.255      2**20
    192.168.0.0 -  192.168.255.255	 192.168.255.255      2**16
    

    Localhost

    Es gibt noch einen 3. Bereich. Den sogenannten Localhost. Beim Localhost handelt es sich um eine IPV4 adresse die immer auf die IP Adresse des eigenen Gerätes zeigt. Die IP Adresse Localhost ist 127.0.0.1. Diese IPV4 adresse kann z.B. dafür verwendet werden um Dienste wie z.B. einen Doker Container auf dem eigenen Gerät anzuspechen.

    Ablauf einer HTTP Request Response

    _________________ 
    |  ____________ |                          _______________ 
    | |           | |       HTTP-Request       |           •• |
    | |           | | --------------------->   |──────────────|
    | |___________| |                          |           •• |          
    |_______________|       HTTP-Response      |──────────────|
    \ _\_\_\_\_\_\_\ \ <-------------------    |           •• |
     \ _\_\_\_\_\_\_\ \                        |──────────────|
      \________________\                       |______________|
    

    Der Ablauf einer HTTP Request und einer HTTP Response verläuft im Grundaufbau immer gleich. Im Header der Anfrage an den Server steht meistens der Path aus der Url, die Anfragemethode und das Schema. Es gibt 4 (5) standard Anfragemethoden. Diese sind: GET um etwas anzufragen, POST um Daten an den Server zu senden, DELETE um Daten wieder zu löschen und PATCH (partial update) und PUT um Daten zu ändern. Grudsätzlich muss man nicht verschiedene Anfragemethoden benuzten. Es entspricht aber einem good practice. Natürlich können auch weitere Daten, wie z.B. Cookies, im Anfrageheader mitgesendet werden. Im Schema wird beschrieben welches Protokoll verwendet wird (http, https)
    Als Antwort auf die Anfrage vom Client sendet dann der Server eine HTTP-Response an den Client. Im Response sendet der Server als erste Zeile immer einen Statuscode. Dieser Statuscode zeigt an, ob die Request Erfolgreich war, oder ob es zu komplikatinen gekommen ist. Es gibt 5 Gruppen von Statuscode
    HTTP Staus Codes:

    Code   Name
    1xx - Information
    2xx - Erfolgreich
    3xx - Redirects
    4xx - Cliend Side Error
    5xx - Server Side Error
    

    418:
    Eine Ausnahme unter den HTTP Status Codes stellt der Status Code 418 (I’m a Teapot) dar. Dieser war ursprünglich als Aprilscherz gedacht hat aber bis in die heutige Zeit überlebt und existiert nun als offizieller HTTP Response Code. Selbst Google hat eine Website, auf welcher man den HTTP Status Code sehen kann https://www.google.com/teapot.

    Reflextion

    Ich denke, dass ich im Untericht gut mitgekommen bin. Ich konnte alle Aufgaben schnell und effektiv lösen. Die Aufgaben konnte ich schnell und Sauber ohne grösser Probleme lösen. Auch denke ich, dass ich diese Woche ein sauberes und asführliches Lernjournal erstellt habe.