Webtechnologien Teil 2: Hypertext Transfer Protokoll (Wiederholung aus Rechnernetze)



Ähnliche Dokumente
Literatur. [2-5] Upgrading to TLS Within HTTP/1.1 Webtechnologien SS Teil 2/HTTP

Literatur. [12-5] Upgrading to TLS Within HTTP/1.1 Netzwerke - WS 2013/14 - Teil 12/HTTP

Netzwerke Teil 12: Hypertext Transfer Protokoll

Webtechnologien Teil 2: Hypertext Transfer Protokoll (Wiederholung aus Rechnernetze)

Motivation. Inhalt. URI-Schemata (1) URI-Schemata (2)

Themen. Anwendungsschicht DNS HTTP. Stefan Szalowski Rechnernetze Anwendungsschicht

Anwendungsprotokolle: HTTP, POP, SMTP

Proxy. Krishna Tateneni Übersetzer: Stefan Winter

Einrichtung Secure-FTP

Session Management und Cookies

Erste Hilfe. «/IE Cache & Cookies» Logout, alte Seiten erscheinen, Erfasstes verschwindet?

Online-Publishing mit HTML und CSS für Einsteigerinnen

Man liest sich: POP3/IMAP

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter

Guide DynDNS und Portforwarding

ARCHITEKTUR VON INFORMATIONSSYSTEMEN

Einrichten eines Postfachs mit Outlook Express / Outlook bis Version 2000

Grundkenntnisse am PC Das Internet

SIZ Modul 221: Outlook und Internetdienste

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

FTP-Leitfaden RZ. Benutzerleitfaden

Schwachstellenanalyse 2012

Musterlösung für Schulen in Baden-Württemberg. Windows Basiskurs Windows-Musterlösung. Version 3. Stand:

Internet Protokolle für Multimedia - Anwendungen

MSXFORUM - Exchange Server 2003 > Konfiguration NNTP unter Exchange 2003

Ursprung des Internets und WWW

DNS-325/-320 und FXP

Wiederherstellen der Beispieldatenbanken zum Buch Microsoft Project 2010

Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version Deutsch

ISA Server 2004 Erstellen einer Webverkettung (Proxy-Chain) - Von Marc Grote

Das Handbuch zu KNetAttach. Orville Bennett Übersetzung: Thomas Bögel

Web Grundlagen zum Spidering

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Anleitung mtan (SMS-Authentisierung) mit SSLVPN.TG.CH

Seminar DWMX DW Session 015

STARFACE SugarCRM Connector

Einrichten von Outlook Express

Zugriff auf OWA Auf OWA kann über folgende URLs zugegriffen werden:

Kurzanleitung SEPPmail

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite.


Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein:

Clientkonfiguration für Hosted Exchange 2010

BusinessMail X.400 Webinterface Gruppenadministrator V2.6

Eine Anleitung, wie Sie Mozilla Thunderbird 2 installieren und konfigurieren können. Installation Erstkonfiguration... 4

Einrichten von Windows Mail

Helmut Kleinschmidt. Pflicht ab

CNAME-Record Verknüpfung einer Subdomain mit einer anderen Subdomain. Ein Alias für einen Domainnamen.

kreativgeschoss.de Webhosting Accounts verwalten

Benutzerhandbuch. Leitfaden zur Benutzung der Anwendung für sicheren Dateitransfer.

Sicherheit QUALITÄTSSICHERUNG DESIGNER24.CH V 1.2. ADRESSE Designer24.ch Web Print Development Postfach Turbenthal Schweiz

Überblick. Netzprogrammierung 7b. Zustand in Web Anwendungen. Zustand in HTTP HTTP ist zustandslos Zwei Interaktionen sind unabhängig voneinander

> Mozilla Firefox 3. Browsereinstellungen optimieren. Übersicht. Stand Juli Seite. Inhalt. 1. Cache und Cookies löschen

Übersicht. Was ist FTP? Übertragungsmodi. Sicherheit. Öffentliche FTP-Server. FTP-Software

Firewalls für Lexware Info Service konfigurieren

Step by Step Webserver unter Windows Server von Christian Bartl

KvBK: Basic Authentication, Digest Authentication, OAuth

FTP-Server einrichten mit automatischem Datenupload für

Wie starte ich mit meinem Account?

Dieses HowTo darf nicht vervielfältigt oder veröffentlich werden ohne Einverständnis des Erstellers. Alle Angaben ohne Gewähr.

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Firewalls für Lexware Info Service konfigurieren

Leitfaden zur Nutzung von binder CryptShare

Konfiguration von Igel ThinClients fu r den Zugriff via Netscaler Gateway auf eine Storefront/ XenDesktop 7 Umgebung

Leitfaden zur Einrichtung za-mail mit IMAP auf dem iphone

Sicheres HTTP. 8. Juni Proseminar Electronic Commerce und digitale Unterschriften

!"# $ % Internet Protokolle: HTTP 1/38

Hyperlinks, Navigation, Pfade

FTP-Leitfaden Inhouse. Benutzerleitfaden

Adminer: Installationsanleitung

Konfiguration eines DNS-Servers

Netzwerk. Um den Hostnamen angezeigt zu bekommen $ hostname $ hostname -f Um den Hostnamen zu ändern $ hostname <neuerhostname>

FAQ IMAP (Internet Message Access Protocol)

FTP Tutorial. Das File Transfer Protocol dient dem Webmaster dazu eigene Dateien wie z.b. die geschriebene Webseite auf den Webserver zu laden.

Betriebskonzept Einrichtung

Mail-Account Unimail mit der Einstellungen für Outlook Express 5.0

my.green.ch... 2 Domänenübersicht... 4

Benutzeranleitung (nicht für versierte Benutzer) SSH Secure Shell

DynDNS Router Betrieb

Erstellen von Mailboxen

A. Ersetzung einer veralteten Govello-ID ( Absenderadresse )

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Administrator Handbuch

Lizenzen auschecken. Was ist zu tun?

Online-News Ausgabe 12, Juli 2000 Seite 56

Tutorial -

So die eigene WEB-Seite von Pinterest verifizieren lassen!

Anleitung OpenCms 8 Webformular Auswertung

STRATO Mail Einrichtung Mozilla Thunderbird

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Beschreibung Regeln z.b. Abwesenheitsmeldung und Weiterleitung

dpa-infocom - Datenlieferung

Eine eigene Seite auf Facebook-Fanseiten einbinden und mit einem Tab verbinden.

Kurzanleitung OOVS. Reseller Interface. Allgemein

Version Deutsch In diesem HOWTO wird beschrieben wie Sie Ihren Gästen die Anmeldung über eine SMS ermöglichen.

Anleitung. Handhabung des ftp-clients FileZilla. Copyright 2015 by BN Automation AG

2. Kommunikation und Synchronisation von Prozessen 2.2 Kommunikation zwischen Prozessen

Transkript:

Webtechnologien Teil 2: Hypertext Transfer Protokoll (Wiederholung aus Rechnernetze) 23.03.15 1

Literatur [2-1] Gourley, David; Totty, Brian: HTTP. The definitive Guide. O'Reilly, 2002 [2-2] Badach, Anatol; Rieger, Sebastian; Schmauch, Matthias: Web- Technologien. Hanser, 2003 [2-3] Hypertext Transfer Protocol -- HTTP/1.1 http://tools.ietf.org/html/rfc2616 [2-4] Universal Resource Identifiers in WWW http://tools.ietf.org/html/rfc1630 Defining Well-Known Uniform Resource Identifiers (URIs) http://tools.ietf.org/html/rfc5785 [2-5] Upgrading to TLS Within HTTP/1.1 http://tools.ietf.org/html/rfc2817 2

Web I Die inzwischen wichtigste Anwendung im Internet ist das Web (WWW = World Wide Web). Eine Web-Site ist eine Sammlung von Web-Pages einer Domain. Alle Seiten einer Web-Site gehören zu einer Domain. Die Domains sind dieselben wie bei E-Mail, News etc. Uniform Resource Locator (URL) = Weltweit eindeutige, aber temporäre Adresse eines Objektes im Web Objekte können sein: Web-Seiten, Bilder, Audio-, Video-Dateien oder andere Dokumente URLs werden benutzt, um Querverweise zu realisieren; erst dadurch entsteht ein Netz, ein Web. 3

Web II Die Web-Site selbst wird meistens über die Datei "index.html" bzw. "index.htm" angesprochen. Diese Datei definiert den "Anfang" der Web-Site. Diese Datei wird dann benutzt, wenn in der URL nur der Domainnamen angegeben wird. Der Name dieser speziellen Startdatei wird durch den Web-Server per Konfiguration festgelegt. Als Client-Software werden meistens Browser benutzt; sie realisieren die Protokoll-Schnittstelle zum Web-Server. Das Protokoll ist HTTP (Hypertext Transfer Protocol). Aber auch andere Programme können auf Web-Server zugreifen, z. B. wget, curl unter LINUX. 4

Zugriff auf die Web-Server Domain A1 Browser Request Response Web-Server Domain A2 Web-Site Request Web-Server Response Nach jedem Response wird der Kontext vergessen. Web-Site 5

URL (Uniform Resource Locator) I http://rechnername.subdomain.domain.top:port/dateiname? XXX=YYYY... Angabe des Protokolls, hier http Angabe des Rechners, meist www Angabe der SubDomain entfällt meist Nach dem? folgen Zusatzinformationen Zusatzinformationen Dateiname Beispiel: http://web.f4.htw-berlin.de/messer/index.html Top Level Domain "de" Domain "fhtw-berlin" SubDomain "f4" Rechnername "web" Der Trenner im Dateinamen ist "/" - auch bei Windows-Betriebssystemen. 6

URL (Uniform Resource Locator) II http://<domain>/dateiname? XXX=YYYY&XXX=YYYY&XXX=YYYY... XXX sind die Namen der Formularfelder (Keywords) YYY sind die Inhalte der Formular-Elemente Das Trennzeichen ist ein "&" Die Strings von XXX und YYY müssen kodiert sein: URL-Encoding: http://de.wikipedia.org/wiki/url-encoding Siehe auch: http://de.wikipedia.org/wiki/uniform_resource_locator 7

URL (Uniform Resource Locator) III URLs von Antworten hatten früher häufig Zusätze hinter einem "?", wie hier dargestellt, heute läuft das alles über JavaScript. 8

Bemerkungen Es können theoretisch beliebig viele Domain-Teile vorhanden sein, praktisch sind es 2-3 (Subdomain bis Topdomain). Es gibt noch zwei weitere Begriffe, die sich aber in der Praxis allgemein nicht durchgesetzt haben: Uniform Resource Name (URN) = Weltweit eindeutiger permanenter Name (Adresse) eines Objekts (URLs sind temporär!) Uniform Resource Identifier (URI) = Oberbegriff zu URL und URN. 9

Möglichkeiten für Protokolle in der URL (Internet) http Normale Anforderung einer Seite fast immer https Zugriff mit SSL selten mailto Mailabsenden, z. B. "mailto:joe@ostern.de" selten ftp Anforderung einer Datei mit FTP selten rtsp, rtspu Übertragung von Audio- und Videoinformation file Verweis auf lokale Datei nie sehr selten news Zugriff auf eine Artikelgruppe im News-System fast nie about Zugriff auf Browser-Internata nie 10

Zugang zur Website I Browser HTTP-Zugang Web-Server Datenbank- Server Log-Dateien Web-Site Datenbank FTP-Client FTP-Zugang FTP-Server Web-Site-Betreiber Web-Site-Provider Neben diesen beiden Zugängen sind noch SSH und WebDAV verbreitet. 11

Zugang zur Website II Neben einem recht unsicheren FTP-Zugang gibt es noch den gleich unsicheren Zugang über WebDAV. Bei diesem Protokoll wird direkt die Web-Site aus der Ferne bearbeitet. Einen sicheren Zugang realisiert nur SSH. 12

Cookies I Cookie = Kombination eines frei definierbaren Schlüsselwortes mit einem Wert in der Form von "Keyword=Wert" sowie einigen Attributen Die Attribute definieren die Zugehörigkeit zu einer Web-Site sowie noch weitere Eigenschaften. Die im Browserkrieg entstandenen Cookie-Formate wurden erstmals in RFC 2109 festgelegt. Hier werden Cookies in der modernen Version nach RFC 6265 erläutert. Attribut Erläuterung domain path expires secure Name der Domain oder ein Teil davon, z. B. "lola.de" Pfad zur Datei Verfallsdatum nach RFC 822 ohne Anführungszeichen Cookie wird nur bei SSL übertragen 13

Cookies II - Beispiele Siehe: http://de.wikipedia.org/wiki/http-cookie http://en.wikipedia.org/wiki/http_cookie 14

Cookies III - Beispiele Typischer Spionage- Glückskeks 15

Cookies IV - Behandlung 16

Flash-Cookies Flash-Cookies stammen von Flash-Anwendungen und haben einen anderen Aufbau und Größe. Sie haben auch nichts mit den bisher vorgestellten Cookies etwas zu tun. Inhalt und Aufgabe derartiger Cookies werden nicht veröffentlicht. Sie können z.b. mit dem Firefox-Plugin Better Privacy gelöscht werden. 17

Hypertext Transfer Protokoll (HTTP) Definiert in RFC 2616 (HTTP 1.1) HTTP 1.0: Version mit Full-Request/Responses HTTP 1.1: Optimierte, verbesserte Version von 1.0 Benutzung von Port 80 oder einem Port, der in der URL angegeben ist, für den Zugriff auf Server HTTP ist ein Protokoll, das Binärdaten entsprechend MIME, jedoch nicht unbedingt in base64 kodiert, überträgt. Die MIME-Definitionen sind analog zu denen zur E-Mail. HTTP ist in dem Sinne ohne Zustände, als dass keine Session- Identifikation existiert, d.h. nach der Behandlung eines Reqtuest wird dieser vom Server vergessen. Dies führte zur Erfindung der Cookies sowie zur Einführung der Sessions bei SSL. 18

Phasen einer Transaktion (HTTP 1.1) 1. Aufbau der TCP/IP-Verbindung mit dem Web-Server 2. Absenden einer HTTP-Anfrage durch Client 3. Absenden der Antwort-Nachricht durch Server 4. Mehrfaches Wiederholen der letzten beiden Punkte 5. Abbau der Verbindung Bemerkungen Bei HTTP 1.1 wird grundsätzlich die Verbindung solange gehalten, bis (voraussichtlich) alle Dateien übertragen sind, was zu einer geringeren Netzbelastung führt. Bei HTTP 1.0 war das nicht so. 19

Client-Anforderung (Request) Anforderungszeile Method URL HTTP-Version Header Nachricht...... Kopf-Informationen Leerzeile Optionale Daten 20

Server-Antwort (Response) Statuszeile HTTP-Version Status-Code Text Header Nachricht...... Kopf-Informationen Leerzeile Optionale Daten Die Header-Informationen bestehen in allen Fällen aus einer Liste von Schlüsselwörtern und Werten entsprechend folgender Syntax: Keyword : Wert 21

Beispiele für Methoden (Request) Kommando GET HEAD PUT POST DELETE Erläuterung Kopieren einer Datei auf den Client Kopieren des HTML-Kopfes der angegebenen Datei auf den Client Kopieren einer Datei auf den Server Übertragung von Daten, z. B. Inhalt von Formularen, im hinteren Teil der Nachricht Löschen der Datei auf dem Server Darüber hinaus gibt es noch folgende Kommandos: OPTIONS, TRACE und CONNECT. 22

Beispiele für Header-Informationen (Request) I Keyword Accept Authorization Cookie Cookie2 From Host Referer User-Agent Erläuterung Vom Client akzeptierte Datenformate "Benutzername:Password" in base64 kodiert Form: Name=Wert Cookie im RFC-2965-Format E-Mailadresse des Clients Hostname des Clients URL der aktuellen HTML-Seite Name des Browsers Als Authentifizierung (mit dem Schlüsselwort Authorization) kann die Basic Access Authentication angewendet werden, z.b. konfiguriert über.htaccess-dateien beim Apache-Webserver. 23

Beispiele für Header-Informationen (Request) II Keyword If-Modified-Since Range Erläuterung Nur wenn seit Datum modifiziert Teilbereich einer Datei(!) Die Bedingungen dienen u.a. der Cache-Validierung bzw. der Optimierung: Wenn das Cache-Objekt zum Zeitpunkt T geholt wurde, dann bewirkt If-Modified-Since : T dass nur dann der Server Daten liefert, wenn diese nach T modifiziert wurden. 24

Hinweise Der Client gibt die gewünschten Formate bzw. die, die er verarbeiten kann, im Kopf an. Der Server kann dann bei Alternativen ein geeignetes Format auswählen. Der Client liefert unaufgefordert sämtliche für die angesprochene Web-Seite (URL) passenden Cookies. Die Wertepaare Cookie From (wird von den Browsern nicht mehr gesendet) Referer sollten durch den Benutzer konfigurierbar sein, da deren Übertragung die Privatsphäre verletzten kann. 25

Beispiele für Status-Codes Code 200 OK Erklärung 202 Anforderung akzeptiert 203 GET/HEAD-Anforderung erfüllt 300 Datenquellen an mehreren Stellen gefunden 304 Datenquelle konnte nicht bestimmt werden 400 Unverständliche Anforderung 401 Nicht zugelassene Anforderung 403 Zugriff untersagt 404 Datenquelle nicht gefunden 500 Interner Serverfehler 502 Schlechte Netzverbindung oder Server überladen Die Codes sind in Gruppen eingeteilt, deren Nummer die erste Ziffer des Codes bildet. 26

Header-Informationen (Responses) Der Server kann als Header-Informationen in seiner Antwort u.a. liefern: Alter der gelieferten HTML-Seite Umleitung auf eine andere URL Seinen eigenen Namen Cookies (zum Setzen auf dem Client) Steuerinformationen für den Cache Beispiele für Cache-Steuerung "Cache-Control: no-cache" - Kein Cache "Cache-Control: max-age = 10000" - Zeit in Sekunden Das Ausschalten des Caches ist für einige Anwendungen zwingend. 27

Cache-Steuerung Es gibt zwei Möglichkeiten der Steuerung: Im Kopf der HTML-Seite können die meisten der besprochenen Header-Komponenten, so auch die Cache-Kontrolle angegeben werden. Das geht mit http-equiv=" Header ". Die Anweisungen stehen tatsächlich im Kopf. Frameworks für den Server, z.b. in PHP, unterstützen dies. Dies ist die beste Lösung. Ein Beispiel für Header-Angaben: Expires: Thu, 01 Dec 1994 16:00:00 GMT Pragma: no-cache Cache-Control: private,no-cache,no-store Diese Lösung deckt auch alle alten Versionen der Server, Caches und Proxies ab. 28

Datenübertragung I Die Übertragung der Daten erfolgt in ASCII oder binär: US-ASCII (7 bit, Type Plain/HTML) Mit MIME spezifizierten Typ Die Daten haben einen eigenen Header mit folgenden Angaben: Content-Encoding Content-Language Content-Length Content-Type (MIME-Type) Expires (Verfallsdatum) 29

Datenübertragung II Werte für Content-Encoding (Beispiele): Encoding gzip compress deflate identity Erläuterung GNU zip Unix file compress zlib-format Original, nicht verändert Mit Content-Type wird der Typ vor der oben angegebenen Behandlung angegeben. Content-Encoding beschreibt wie das Objekt zwecks Übertragung behandelt wurde. Content-Length gibt die Länge das dann für die Übertragung behandelten Objekt an. 30

Datenübertragung III Über MIME können wie bei Email mehrere Objekte hintereinander übertragen werden, z.b. mehrere Bilder. Damit sind folgende Möglichkeiten vorhanden: Einfacher MIME-Header mit ASCII/Binär-Information Mehrere MIME-Header mit boundary-angabe Die Struktur ist ähnlich zu Email, nur dass nicht mit base64 die binären Daten kodiert werden müssen: es ist also möglich binäre Daten ohne Umkodierung zu übertragen. 31

Proxy Client (1) (2) Server Client (1) (2) (4) Proxy (3) Server Ein Proxy ist ein vermittelndes Zwischensystem. 32

Aufgaben eines Proxys Zwischenspeicherung abgerufener Informationen (Cache) Besonderheiten: Verschlüsselte Informationen werden nicht gespeichert "Interaktive" Web-Anwendungen müssen Cache ausschalten Prüfung der angeforderten URLs, z.b. Verbot privaten Surfens während der Arbeitszeit Prüfung der Antworten, z. B. Ausfiltern aktiver Inhalte wie ActiveX oder Virenscann Beispiele für Proxies: squid: Optimierung durch Cache Zugriffssteuerung privoxy: Herausfiltern Modifizieren der Pakete 33

Nach dieser Anstrengung etwas Entspannung... 34