Benutzer-Werkzeuge

Webseiten-Werkzeuge


kommunikation:http:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
kommunikation:http:start [2024/02/18 09:00] – [Cookies zu Marketing- und Werbezwecken (third pary cookies)] Martin Pabstkommunikation:http:start [2024/11/21 07:05] (aktuell) – [Cookies zu Marketing- und Werbezwecken (third pary cookies)] Martin Pabst
Zeile 7: Zeile 7:
 {{ :kommunikation:http:request_response.png?800 |}} {{ :kommunikation:http:request_response.png?800 |}}
  
-===== Die wichtigsten Requestparameter =====+==== Die wichtigsten Requestparameter ====
  
   * **User-Agent**: Hier kann der Client mitteilen, welcher Browser die Anfrage sendet und in welchem Betriebssystem dieser läuft. Diese Information ist für Website-Betreiber wichtig, da sie so statistische Erkenntnisse darüber gewinnen, welche Browser/Betriebsssteme ihre User wie häufig verwenden und ihre Seite speziell für diese optimieren können.   * **User-Agent**: Hier kann der Client mitteilen, welcher Browser die Anfrage sendet und in welchem Betriebssystem dieser läuft. Diese Information ist für Website-Betreiber wichtig, da sie so statistische Erkenntnisse darüber gewinnen, welche Browser/Betriebsssteme ihre User wie häufig verwenden und ihre Seite speziell für diese optimieren können.
Zeile 16: Zeile 16:
   * **Cookie**: Der Client kann dem Server sogenannte Cookies (das sind Schlüssel-Wert-Paare) übermitteln, die der Server bei einem vorhergehenden Request beim Client hinterlegt hat. Näheres dazu siehe unten.   * **Cookie**: Der Client kann dem Server sogenannte Cookies (das sind Schlüssel-Wert-Paare) übermitteln, die der Server bei einem vorhergehenden Request beim Client hinterlegt hat. Näheres dazu siehe unten.
  
-===== Die wichtigsten Responseparameter =====+==== Die wichtigsten Responseparameter ====
   * **Date**: Datum und Uhrzeit der Antwort   * **Date**: Datum und Uhrzeit der Antwort
   * **Server**: Hier kann der Server angeben, welches Server-Programm zum Einsatz kommt und auf welchem Betriebssystem es läuft.   * **Server**: Hier kann der Server angeben, welches Server-Programm zum Einsatz kommt und auf welchem Betriebssystem es läuft.
-  * **Last-Modified**: Das ist der Zeitpunkt, an dem die übermittelte Datei zum letzten Mal verändert wurde. Der Client kann die Anfrage an den Server so senden, dass dieser zunächst nur den Response-Header (aber noch nicht die Datei) sendet. Liegt im Cache des Clients (siehe unten) die Datei vor und ist sie nicht älter als ''Last-Modified'', so kann der Client die Datei aus dem Cache verwenden und muss sie nicht zeitaufwändig vom Server holen. Das spart überdies Netzwerk-Bandbreite und Energie ( -> Umwelt!).+  * **Cache-Control**: [[#caching|Siehe unten]]
   * **Content-Length**: Das ist die Länge der nach dem Response-Header folgenden Daten in Byte. Der Client kann sie nutzen, um z.B. bei größeren Downloads einen Fortschrittsbalken anzuzeigen.   * **Content-Length**: Das ist die Länge der nach dem Response-Header folgenden Daten in Byte. Der Client kann sie nutzen, um z.B. bei größeren Downloads einen Fortschrittsbalken anzuzeigen.
   * **Content-Type**: Per HTTP werden nicht nur Webseiten übertragen, sondern auch Bilder, pdf-Dateien, Sound, Videos usw. Mit diesem Parameter teilt der Server dem Client mit, welche Art von Daten er sendet. Die Abkürzungen der Datentypen (MIME-Types) [[https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types|finden Sie hier.]]   * **Content-Type**: Per HTTP werden nicht nur Webseiten übertragen, sondern auch Bilder, pdf-Dateien, Sound, Videos usw. Mit diesem Parameter teilt der Server dem Client mit, welche Art von Daten er sendet. Die Abkürzungen der Datentypen (MIME-Types) [[https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types|finden Sie hier.]]
Zeile 46: Zeile 46:
 </WRAP> </WRAP>
  
-<WRAP center round important 60%>+<WRAP center round important 80%>
 **Problem:** \\ **Problem:** \\
 HTTP ist zustandslos, viele Webseiten sind es aber nicht. Stellen Sie sich vor, sie kaufen in einem Online-Shop ein. Auf der Startseite geben Sie Ihren Benutzernamen und Ihr Passwort ein, dann klicken Sie auf "OK". Der Browser sendet die Daten jetzt per HTTP-Request an den Server, der liefert prüft ihre Zugangsdaten mithilfe Ihres Kundendatensatzes in seiner Datenbank und liefert eine Begrüßungsseite zurück ("Hallo Silvia, ..."). Da HTTP zustandslos ist, bleibt die Verbindung danach nicht erhalten. Beim nächsten Request an den Server (Sie klicken vielleicht auf ein Item, um es in den Einkaufskorb zu legen...) weiß dieser nicht mehr, dass der Request von Ihnen stammt.  HTTP ist zustandslos, viele Webseiten sind es aber nicht. Stellen Sie sich vor, sie kaufen in einem Online-Shop ein. Auf der Startseite geben Sie Ihren Benutzernamen und Ihr Passwort ein, dann klicken Sie auf "OK". Der Browser sendet die Daten jetzt per HTTP-Request an den Server, der liefert prüft ihre Zugangsdaten mithilfe Ihres Kundendatensatzes in seiner Datenbank und liefert eine Begrüßungsseite zurück ("Hallo Silvia, ..."). Da HTTP zustandslos ist, bleibt die Verbindung danach nicht erhalten. Beim nächsten Request an den Server (Sie klicken vielleicht auf ein Item, um es in den Einkaufskorb zu legen...) weiß dieser nicht mehr, dass der Request von Ihnen stammt. 
Zeile 59: Zeile 59:
 {{ :kommunikation:http:session-cookies.png?800 |}} {{ :kommunikation:http:session-cookies.png?800 |}}
  
-==== Cookies zu Marketing- und Werbezwecken (third pary cookies) ====+==== Cookies zu Marketing- und Werbezwecken (third party cookies) ====
 Das Geschäftsmodell von Firmen wie Google und Facebook beseht darin, Werbung zu vermarkten (online marketing). Dabei können sie für Werbebanner und Links in Suchergebnislisten umso mehr Gebühren verlangen, je besser die Nutzer, die die Werbung zu sehen bekommen, zum beworbenen Produkt/Service passen. Das Geschäftsmodell von Firmen wie Google und Facebook beseht darin, Werbung zu vermarkten (online marketing). Dabei können sie für Werbebanner und Links in Suchergebnislisten umso mehr Gebühren verlangen, je besser die Nutzer, die die Werbung zu sehen bekommen, zum beworbenen Produkt/Service passen.
 +
 <WRAP center round todo 80%> <WRAP center round todo 80%>
-**Aufgabe: Werbung für ein Klassik-Konzert** \\ +**Aufgabe 2: Werbung für ein Klassik-Konzert** \\ 
 Eine Eventagentur organisiert ein Konzert der Münchner Philharmoniker im Stadttheater Ingolstadt. Gespielt wird die 9. Symphonie von Beethoven. Um das Konzert publik zu machen soll auch Onlinewerbung geschaltet werden. Die Agentur beauftragt beispielsweise Facebook mit dem Schalten von Werbeeinblendungen in Timelines und Google mit dem Einblenden des Links zu Ihrer Homepage in Suchergebnislisten. Je Werbeeinblendung/Klick auf eine Suchergebnis muss die Agentur einen bestimmten Betrag (i.d.R. mehrere Cent bis hin zu einstelligen Euro-Beträgen) je Klick auf eine Werbung bzw. auf ein Suchergebnis zahlen. Damit dieses Geld nicht umsonst investiert ist (was nutzt es der Agentur, wenn ein Nutzer in Indonesien ihre Werbung zu sehen bekommt) kann sie bei Beauftragung der Werbung einschränken, dass diese nur für bestimmte Nutzergruppen angezeigt wird: Eine Eventagentur organisiert ein Konzert der Münchner Philharmoniker im Stadttheater Ingolstadt. Gespielt wird die 9. Symphonie von Beethoven. Um das Konzert publik zu machen soll auch Onlinewerbung geschaltet werden. Die Agentur beauftragt beispielsweise Facebook mit dem Schalten von Werbeeinblendungen in Timelines und Google mit dem Einblenden des Links zu Ihrer Homepage in Suchergebnislisten. Je Werbeeinblendung/Klick auf eine Suchergebnis muss die Agentur einen bestimmten Betrag (i.d.R. mehrere Cent bis hin zu einstelligen Euro-Beträgen) je Klick auf eine Werbung bzw. auf ein Suchergebnis zahlen. Damit dieses Geld nicht umsonst investiert ist (was nutzt es der Agentur, wenn ein Nutzer in Indonesien ihre Werbung zu sehen bekommt) kann sie bei Beauftragung der Werbung einschränken, dass diese nur für bestimmte Nutzergruppen angezeigt wird:
   * Wohnort im Umkreis von 150 km um Ingolstadt   * Wohnort im Umkreis von 150 km um Ingolstadt
Zeile 73: Zeile 74:
 </WRAP> </WRAP>
  
-  +<WRAP center round info 80%> 
 +Öffnet ein User eine Webseite (z.B. shoes-for-cats.com), auf der sich ein Like-Button von Facebook, eine von Google geschaltete Werbeanzeige o.ä. befindet, so sendet der Browser einen Request an Facebook/Google/..., um die Grafik zu laden. Dieser Request könnte beispielsweise so aussehen: 
 +<code> 
 +GET /likebutton.png HTTP/1.1 
 +Host: www.facebook.com 
 +User-Agent: Mozilla/4.0 (Windows NT) 
 +Referer: shoes-for-cats.com/lightblue/cotton.html 
 +Origin: shoes-for-cats.com 
 +Cookie: user=Kodfk4988724lkj 
 +</code>   
 +Durch die Request-Header ''Referer'' (mit Pfad) und ''Origin'' (ohne Pfad) erfährt Facebook, auf welcher Seite der Like-Button steht. Wird eine Werbegrafik angefordert, so bekommt der Ad-Seller i.d.R. auch noch eine id als Parameter mitgeliefert die er vorher vertraglich mit dem Betreiber von www.shoes-for-cats.com vereinbart hat. Auch aus dieser kann er zweifelsfrei die Seite ermitteln, auf der der Nutzer gerade surft. Der Request-Header für die Werbung sieht dann etwa so aus: 
 +<code> 
 +GET /ad.png?id=23Jlk34jia HTTP/1.1 
 +Host: www.googleads.com 
 +Cookie: user=Kodfk4988724lkj 
 +... 
 +</code> 
 + 
 +Sie werden sich wundern, wieso der Browser den Requests ein Cookie beifügt. Genaugenommen tut er dies nur, wenn der User 
 +  * in letzter Zeit schon mal auf einer Seite gesurft hat, auf der Werbung von Google/Facebook zu sehen war oder 
 +  * ein Google-Konto/Facebook-Konto besitzt und das Cookie beim Besuch von GMail, Facebook, dem Google-Kalender, ... gesetzt wurde. 
 + 
 +Beim Ausliefern der oben angeforderten Bilder jedenfalls versäumen es Google/Facebook nicht, ein Cookie zu setzen: 
 +<code> 
 +HTTP/1.1 200 OK 
 +Date: Mon, 27 Jul 2009 12:28:53 GMT 
 +Content-Length: 1745 
 +Content-Type: image/x-png 
 +Set-Cookie: user=Kodfk4988724lkj; Expires=2025-01-20 00:00 GMT 
 +</code> 
 + 
 +Mithilfe solcher Cookies ist es großen Werbenetzwerken (es gibt nicht nur Google und Facebook...) möglich, das Surfverhalten von Nutzer/innen über viele Seiten und lange Zeiträume hinweg nachzuverfolgen. Sie werden daher als **tracking cookies** bezeichnet. Da der Host, der das Cookie setzt (z.B. googleads.com, facebook.com, ...) von dem Host abweicht, der die aktuell besuchte Seite ausgeliefert hat (shoes-for-cats.com), heißen diese Cookie aus technischer Sicht **third party cookies**. \\ \\  
 +</WRAP> 
 + 
 +===== Aufgabe 3: Cookies aus Datenschutzsicht ===== 
 +[[https://developer.mozilla.org/en-US/blog/goodbye-third-party-cookies/|Lesen Sie diesen Artikel des Mozilla Developer Network und beantworten Sie damit folgende Fragen:]] 
 +  * **a)** Welche Arten von Cookies sind aus Datenschutzgründen bedenklich? Warum? 
 +  * **b)** Was können Sie als Nutzer/in tun, um sich zu schützen? 
 +  * **c)** Wie agieren die aktuellen Browserhersteller (Mozilla/Apple/Google/Microsoft) ins Sachen third party cookies? Welche Interessen verfolgen sie jeweils? 
 + 
 + 
 +===== Caching ===== 
 +Liefert ein Server eine Ressource (z.B. eine HTML-Datei, eine Grafikdatei, ...) aus, so kann der Client sie auf seiner SSD zwischenspeichern. Falls der User dieselbe Webseite erneut besucht und der Browser die Ressource erneut braucht, kann er dann einfach die zwischengespeicherte Version von der SSD verwenden. Diesen Vorgang nennt man **caching**. Das beschleunigt nicht nur den Ladevorgang der Webseite (das Laden von der SSD geht viel schneller als das Holen vom Server), sondern ist auch umweltschonend, da jeder HTTP-Request/Response Energie verbraucht. \\ \\  
 +Aber was, wenn der Client ein Bild "affe.jpg" in seinem Cache hat, das älter ist als die aktuelle Version auf dem Webserver?  \\  
 +Zu diesem Zweck kann der Webserver dem Client beim Ausliefern von Ressourcen im Response-Header signalisieren, wie lange er sie höchstens cachen darf. So bedeutet der Response-Header 
 +<code> 
 +Cache-Control: max-age=604800 
 +</code> 
 +dass die entsprechende Ressource maximal 604800 Sekunden im Cache zwischengespeichert werden sollte. 
 + 
 +===== Weiterentwicklungen ===== 
 +==== HTTP/2 ==== 
 +Die neue Protokollversion HTTP/2 findet Stand 2024 langsam immer mehr Verwendung in Browsern und Webservern. Sie bietet folgende Performanceverbesserungen gegenüber HTTP/1.1: 
 +  * Auch Header können komprimiert werden. 
 +  * Fordert der Client eine Webseite an (z.B. http://www.csg-in.de/index.php) und weiß der Server, dass die Seite bestimmte Ressourcen (Bilder, ...) benötigt, so kann er sie dem Client mit dem Response gleich mitschicken ohne dass dieser sie erst extra anfordern muss. 
 + 
  
kommunikation/http/start.1708246821.txt.gz · Zuletzt geändert: 2024/02/18 09:00 von Martin Pabst

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki