Está en la página 1de 45

Einführung in Webtechnologien

HTTP
Prof. Ulrik Schroeder, René Röpke & Svenja Noichl
Lehr- und Forschungsgebiet Informatik 9

Dieses Werk ist mit Ausnahme des Logos der RWTH Aachen lizenziert unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 4.0 International Lizenz.
Frontend
Client-Server Model
Proxy P2P HTML5
CSS
PHP
HTTP/ Gestaltung
Programmier- Apache HTTPS
sprachen Bootstrap DOM
Server
JavaScript Technologien
Angular jQuery
Node.js
Manipulation
Backend

REST Browser
AJAX
SQLite JavaScript
Datenbanken
MongoDB

2 Einführung in Web Technologien


Frontend
Client-Server Model
Proxy P2P HTML5
CSS
PHP
HTTP/ Gestaltung
Programmier- Apache HTTPS
sprachen Bootstrap DOM
Server
JavaScript Technologien
Angular jQuery
Node.js
Manipulation
Backend

REST Browser
AJAX
SQLite JavaScript
Datenbanken
MongoDB

3 Einführung in Web Technologien


Lernziele
 Grundlagen des Caching
 Sessionmanagement
 HTTPS Grundlagen
 Datenübertragung und Adressierung

4 Einführung in Web Technologien


CACHING

5 Einführung in Web Technologien


Caching [5]

 Caching ist die Aufbewahrung von Seiten für zukünftige Zugriffe


 Zwei Modelle:
 Expirationsmodell
 Validierungsmodell
 Verbesserte Skalierbarkeit der Webarchitektur
 Einbettet in HTTP Requests GET / HTTP/1.1

 Cache-Control: Host: lufgi9.informatik.rwth-aachen.de


Connection: close
no-cache User-Agent: Web-sniffer/1.1.0 (+http://web-sniffer.net/)
max-age=<seconds> Accept-Encoding: gzip
Accept-Charset: ISO-8859-1,UTF-8;q=0.7,*;q=0.7
… Cache-Control: no-cache
Accept-Language: de,en;q=0.7,en-us;q=0.3
Referer: http://web-sniffer.net/

6 Einführung in Web Technologien


Caching Topologien
 Client-side Caching

Client
WWW Server
Cache

Client
Cache

Client
Cache

7 Einführung in Web Technologien


Caching
 Manche Browser erlauben es Caching zu deaktivieren/zu regulieren

Screenshot aus den Einstellungen von Mozilla Firefox (v53.0.2)

8 Einführung in Web Technologien


Caching Topologien
 Shared Client-side Caching

Client Proxy
WWW Server

Client
Cache

Client

9 Einführung in Web Technologien


Caching Topologien
 Server-side Caching

Client
WWW Server

Client
Cache

Client

10 Einführung in Web Technologien


Caching Topologien
 Combined Client-/Server-side Caching
Client
Proxy
Cache
WWW Server

Client
Cache
Cache

Client

Client
Cache

11 Einführung in Web Technologien


SESSIONMANAGEMENT

12 Einführung in Web Technologien


Was wissen Server über Clients?
 HTTP ist ein zustandsloses Protokoll
➔ Server kann keine Zuordnung von Informationen zu bestimmten Clients
vornehmen
➔ Woher wissen Online-Shops dann, welche Artikel ein bestimmter Kunde in
den Warenkorb gelegt hat?

13 Einführung in Web Technologien


Was wissen Server über Clients?

14 Einführung in Web Technologien


Was wissen Server über Clients?
 Sessions = Sequenz aus mehreren Anfragen und Antworten

 Basistechniken
 Hidden Fields
 Session-Informationen zur URL hinzufügen („URL rewriting“)
 Cookies

15 Einführung in Web Technologien


HIDDEN FIELDS

16 Einführung in Web Technologien


Hidden Fields
 Im HTML-Formular unsichtbar
Request of HTML form 1
 Als Schlüssel-Wert-Paare an Server
Response: HTML form 1
übertragen Transmission of form data 1
Response: HTML form 2
incl. form data 1 as hidden fields
Transmission of form data 1+2
Response: HTML form 3
Form 2
<form method="get" action="shop.php"> incl. form data 1+2 as hidden fields
... Transmission of form data 1+2+3
<input type="hidden" name="cart" value="data 1" />
</form> Form 3
<form method="get" action="shop.php">
...
<input type="hidden" name="cart" value="data 1" />
<input type="hidden" name="cart" value="data 2" />
</form>
17 Einführung in Web Technologien
Vor- und Nachteile – Hidden Fields
Vorteile: Nachteile:
 Keine speziellen Vorbereitungen  Server muss Formulare mit Hidden
notwendig (Client- und Fields dynamisch erzeugen
Serverseite)  Keine Bookmarks möglich
 Client bleibt anonym  Server muss validieren ob
Änderungen an Daten
vorgenommen wurden

18 Einführung in Web Technologien


URL REWRITING

19 Einführung in Web Technologien


URL Rewriting - Server
 Server fügt aktuelle Session-Informationen dynamische zu jeden Hyperlink
der ausgelieferten Seite hinzu
HTTP/1.1 200 OK
Date: Wed, 05 Dec 2006 09:15:55 GMT
Server: Apache/2.0.58 (Gentoo) …
Content-Length: 693
Content-Type: text/html; charset=ISO-8859-1

<html>…
<body>…
<a href="/category.jsp;jsessionid=gawdhgJGFGl-96OLPA">…

<a href="/help.jsp;jsessionid=gawdhgJGFGl-96OLPA">…

<a href="/category.jsp;jsessionid=gawdhgJGFGl-96OLPA" >…

</body>
</html>
20 Einführung in Web Technologien
URL Rewriting - Client
 Session-Informationen werden als Teil der URL an den Server übergeben

GET /category.jsp;jsessionid=gawdhgJGFGl-96OLPA
HTTP/1.1
Host: www.anything.de
User-Agent: Mozilla/5.0 …
Accept:
text/xml,application/xml,application/xhtml+xml,text/…
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7

21 Einführung in Web Technologien


Vor- und Nachteile – URL Rewriting
Vorteile: Nachteile:
 Keine Vorbereitungen auf  Gleiche Nachteile wie bei Hidden
Clientseite notwendig Fields
 URLs müssen dynamisch generiert
werden

22 Einführung in Web Technologien


COOKIES

23 Einführung in Web Technologien


Cookies
 Server sendet das Cookie mit den Session-Informationen im HTTP response-
header
HTTP/1.1 200 OK
Date: Wed, 05 Dec 2007 09:56:05 GMT
Server: Server
Set-cookie: session-id-time=1197414000l;
path=/; domain=.amazon.de; expires=Tue Dec
12 23:00:00 2007 GMT
Set-cookie: session-id=302-7278726-3992043;
path=/; domain=.amazon.de; expires=Tue Dec
12 23:00:00 2007 GMT
Content-Encoding: gzip
Content-Type: text/html; charset=ISO-8859-15

24 Einführung in Web Technologien


Cookies
 Client speichert die Daten lokal

Gültigkeitsdatum

25 Einführung in Web Technologien


Cookies
 Bei jedem HTTP request werden die Informationen automatisch an den
Server gesendet

GET /exec/obidos/tg/browse/-
/299956/ref=topnav__w HTTP/1.1
Host: www.amazon.de
User-Agent: Mozilla/5.0 …
Accept:
text/xml,application/xml,application/…
Accept-Charset: ISO-8859-1,utf-8…
Referer: http://www.amazon.de/
Cookie: session-id-time=1197414000l;
session-id=302-7278726-3992043

26 Einführung in Web Technologien


Vor- und Nachteile – Cookies
Vorteile: Nachteile:
 Transfer ist unabhängig vom Inhalt  Cookies eines Servers werden mit
der Antwort jeder Anfrage gesendet
 Cookies sind nicht mit HTML-Inhalt  Nutzer können die Benutzung von
verbunden Cookies ausschalten/manipulieren
 Wird unabhängig von der  Größe des Cookies auf 4KB
Browsing-History des Clients bei beschränkt
jeder Anfrage gesendet  Anzahl der Cookies für einen
Nutzer beschränkt:
 300 insgesamt
 20 von einem Server

27 Einführung in Web Technologien


Nachteile Client-seitiger Zustandsspeicherung
 Größe der gespeicherten Daten ist limitiert
 Bei der „Cookie-Lösung“ könnte man z.B. nur 20 Produkte in den Warenkorb legen
 Geringere Performance
 Daten werden bei jeder Anfrage und jeder Antwort gesendet
 Sicherheitsprobleme
 Nutzer können Daten ändern → Validierung der Daten durch den Server nötig

➔ Session auf dem Server speichern

28 Einführung in Web Technologien


Server-seitige Zustandsspeicherung
1234
create
Initial request
Response: form 1 and
cookie session ID=1234
Transmission of form data 1 1234
insert
and session ID 1234 1111
Delivery: form 2
Transmission of form data 2
and session ID 1234 insert 1234
1111
Delivery: form 3
2222
Transmission of form data 3
insert
and session ID 1234
1234
Delivery: form 4 1111
2222
3333
29 Einführung in Web Technologien
CLIENTSEITIGE UND SERVERSEITIGE
ZUSTANDSSPEICHERUNG

30 Einführung in Web Technologien


HTTPS – HYPERTEXT TRANSFER PROTOCOL SECURE

31 Einführung in Web Technologien


Problem bei HTTP
Bei einer HTTP-Verbindung können alle Daten (Klartext), die
gesendet werden, von einem Angreifer gelesen werden[1]

[6]

32 Einführung in Web Technologien


HTTPS - HyperText Transfer Protocol Secure
 Protokoll zu abhörsicheren Übertragung von Dokumenten im WWW
 Zusätzliche Schicht zwischen HTTP und TCP
 1994 zusammen mit SSL 1.0 von Netscape entwickelt

 Erste öffentlich genutzte Version war SSL 2.0 (1995)


 1996 ersetzt durch SSL 3.0
 Angriffe auf SSL 3.0 möglich

 Heute wird TLS benutzt


[1]

33 Einführung in Web Technologien


TLS - Transport Layer Security

 Weiterentwicklung von SSL (aber nicht kompatibel)


 Erste Version 1999 veröffentlicht
 Seit 2009: TLS 1.2
 Häufig wird SSL gesagt, wenn eigentlich TLS gemeint ist

 Seit 2018 auch TLS 1.3


 Aktuell in unserer Vorlesung noch TLS 1.2

[1]

34 Einführung in Web Technologien


TLS 1.2

[2]

35 Einführung in Web Technologien


TLS 1.2 – Phase 1

[2]

36 Einführung in Web Technologien


TLS 1.2 – Phase 2

[2]

37 Einführung in Web Technologien


TLS 1.2

[2]

38 Einführung in Web Technologien


TLS 1.2

[2]

39 Einführung in Web Technologien


DATENÜBERTRAGUNG UND ADDRESSIERUNG

40 Einführung in Web Technologien


Übertragung der Daten
 Wir wissen jetzt, wie man Daten im Internet sicher übertragen kann, aber
woher wissen unsere Daten, wo ihr Empfänger ist und wie wird
sichergestellt, dass die Daten auch ankommen?

41 Einführung in Web Technologien


TCP - Transmission Control Protocol
 Zur Übertragung werden die Daten in kleine Pakete aufgeteilt
 TCP sorgt dafür, dass alle Datenpakete beim Empfänger in die richtigen
Reihenfolge gebracht werden (Sequenznummern)
 Die Übertragung ist abgeschlossen, wenn alle Daten angekommen sind
[3]

1 2 3 4 5

5 4 2 3 1

42 Einführung in Web Technologien


IP (InternetProtocol) Adressen
 Jedem Gerät, das an das Internet angebunden ist, wird eine IP-Adresse
zugewiesen
 Geräte sind adressierbar und erreichbar
 Klassische IP Adressen bestehen aus 4 Bytes, in der Dezimalschreibweise
sind das 4 Dezimalzahlen zwischen 0 und 255 jeweils durch einen Punkt
getrennt 127.0.0.1

 Aber: immer mehr internetfähige Geräte ➔ die IP-Adressen reichen nicht


mehr ➔ IPv6 Adressen
 IPv6 Adressen bieten statt 32 Bit 128 Bit zur Adressierung
[4]
2001:db8:85a3::8a2e:370:7344

43 Einführung in Web Technologien


DNS - Domain Name System
 Wenn man im Internet eigentlich mit IP-Adressen adressiert, wieso können
wir dann z.B. www.example.com in unserem Browser eingeben und
erhalten dennoch unsere gewünschten Daten?
 Dafür gibt es das Domain Name System (DNS)
[4]

www.example.com IPv4: 93.184.216.34


IPv6: 2606:2800:220:1:248:1893:25c8:1946

44 Einführung in Web Technologien


Quellenangaben
 [1]: https://wiki.selfhtml.org/wiki/HTTPS
 [2]: SSL Handshake, Quelle: de.wikipedia.org, Autor: Essich (CC BY-SA 3.0)
 [3]: https://wiki.selfhtml.org/wiki/Grundlagen/TCP/IP-Protokoll
 [4]: https://wiki.selfhtml.org/wiki/Grundlagen/IP-Adressierung
 [5]: Tilkov, Stefan. REST und HTTP. 1. Auflage. Heidelberg: dpunkt, 2009.
 [6]: Attaque Man In The Middle, Quelle: commons.wikimedia.org, Autor: Martial Régereau (CC BY-SA 3.0)

45 Einführung in Web Technologien

También podría gustarte