Webserver, © Till Hänisch 2001 HTTP HyperText Transfer Protocol - Wie kommen die Seiten vom Server zum Browser ?

Slides:



Advertisements
Ähnliche Präsentationen
Aufbau eines Netzwerkes
Advertisements

Be.as WEB Technologie
Einer der Dienste im Internet
Dynamische Seiten mit Dreamweaver Zugriff auf (mysql) Datenbank mit PHP.
HTTP – Hypertext Transfer Protocol
Basis-Architekturen für Web-Anwendungen
WWW Applikationen Vorlesung Anwendungssysteme. Lernziele: Wie funktioniert das WWW technisch? Welche Basis-Interaktionsmöglichkeiten bietet das WWW? Wie.
HTTP HyperText Transfer Protocol -
Webserver, © Till Hänisch 2002 Apache The open way.
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
Paketorientierte Datenübertragung
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
Internet und seine Dienste
Einführung in die Netzwerktechnik 1 Der ARP-Prozess
1. Einführung Lernziele: Auffrischen des Wissens aus Rechnernetze
Schulen ans Netz Oberhausener Moderatoren
Einführung in die Technik des Internets
Einführung MySQL mit PHP
Seite Common Gateway Interface. Konzepte. Übersicht 1Einleitung 2Was ist CGI? 3Wozu wird CGI verwendet? 4Geschichtlicher Überblick 5Grundvoraussetzungen.
Präsentation von Stefan Gimbel, Stefan Wurzer und Thomas Eschbach
FH-Hof HTML - Einführung Richard Göbel. FH-Hof Komponenten des World Wide Webs WWW Browser HyperText Transfer Protocol (HTTP) via Internet WWW Server.
von Julia Pfander und Katja Holzapfel E 12/2
Mark Doll – 1/21V3D2 Workshop 2003, Frankfurt/Main 19./ http:// Ansätze für eine Web-basierte Initiierung qualitätsbasierter Kommunikationsdienste.
Client-Server Modell Advanced IT Basics Nicolas Frings.
3 Wie funktioniert TCP/IP?
Learning By Doing TCP/IP Netzwerke mit TCP/IP Das Internet verwendet weitgehend das rund 30-jährige TCP/IP-Protokoll (TCP: Transmission Control Protocol,
Rechnerkommunikation I
Referent: Kiron Mirdha Betreuer: Rene Hilden Juli 2012
Firewall.
Client-Server Systeme
Grundlagen: Client-Server-Modell
Julia Grabsch Florian Hillnhütter Fabian Riebschläger
Netzwerkprogrammierung
IFB Speyer Daniel Jonietz dj 2 XAMPP - Was ist das? Paket mit: – X – Apache (Webserver) – MySQL oder SQLite (Datenbank) – Perl (Skriptsprache) –
Internet und SMS Internet und SMS Daniel Rickenbacher Jeremy Deuel.
CGI (Common Gateway Interface)
Netzwerke.
Mag. Andreas Starzer weloveIT – EDV Dienstleistungen
Netzwerke.
HTTP IT-Zertifikat Universität zu Köln Allgemeine Technologien II
Client-Server-Modell
DNS DNS Das Domain Name System ist der Dienst im Internet, der DNS Namen in entsprechenden IP Adressen umsetzt und umgekehrt auch IPAdressen Namen zuordnen.
PHP PHP ( „PHP Hypertext Preprocessor") ist eine Skriptsprache
© Fink/Spengler/AINF-Lehrgang 2003 – Folie 1 AINF/3. Jahrgang Netzwerke Anwendungen (Clientseitig) Karl Brenner, Andreas Fink, Gerhard Jüngling, Albert.
Willkommen zum Brückensemester
->Prinzip ->Systeme ->Peer – to – Peer
Was wäre wenn….. SNMP (Simple Network Managment Protocol)
Datenbanken im Web 1.
Internet-Grundtechnologien. Client / Server Client („Kunde“): fordert Information / Datei an im Internet: fordert Internetseite an, z.B.
Webserver Apache & Xampp Referenten: Elena, Luziano und Sükran
Das World Wide Web Stephan Becker TIT05BGR SS06. Das World Wide Web Übersicht Hypertext & Hypermedia HTML Dokumentenidentifikation Dokumententransport.
Cookies Kekse? Internet Gefahr?.
Internet - Grundbegriffe Unterlagen zum Kurs "Wie erstelle ich eine Homepage?"
Das Internet Ein Netzwerk, das viele Rechner miteinander verbindet
Lisa Huber DHBW Mannheim
1 Servlets Stephan Baldes. 2 Was ist ein Servlet? S E R V L E T = Eine auf Java-Technologie basierte Web-Komponente, die von einem Container.
Eine komplexe Netzanwendung Webserver und Datenbankserver im Netzwerk in einer Anwendung einrichten.
Internetzwerke.
DNS Grundlagen Wer soll sich das merken !!! Wer soll sich das merken !!!
IS: Datenbanken, © Till Hänisch 2000 Windows Netzwerke TCP/IP oder was ?
Web APIs (REST) Marko Harasic Freie Universität Berlin Institut für Informatik Netzbasierte Informationssysteme
Dynamische Webseiten CGI & co. © CGI - Lösung für alle ? Ja CGI kann alles tun, was man für Anwendungen braucht flexibel (beliebige.
LINUX II Unit 7 LAMP Server. LAMP ● Linux – Apache - MySQL – PHP ● Leistungsfähiges und kostenloses System zur Genrierung von dynamischen Webseiten und.
Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung Netzwerke Alexander Sczyrba Jan Krüger.
HTTP Wie funktioniert das WWW ?. © Architektur Wie funktioniert das eigentlich ? Darstellung: HTML Abwicklung: HTTP Browser Webserver.
Netzwerke - Protokolle
Crashkurs Computernetzwerke
Systeme II 6. Die Anwendungsschicht
Tutorstunde 10.
 Präsentation transkript:

Webserver, © Till Hänisch 2001 HTTP HyperText Transfer Protocol - Wie kommen die Seiten vom Server zum Browser ?

Webserver, © Till Hänisch 2001 Prinzip Server ist passiv wartet auf eingehende Anfragen stateless Anfragen sind unabhängig voneinander Messages vom Client zum Server: Anforderungen (Request) vom Server zum Client: Antwort (Response) Methoden (GET, POST,...) Server liefert (Informations-) Resourcen an Clients aus beliebige Daten aus beliebigen Quellen (Dateisystem, Datenbanken, Sensoren,...)

Webserver, © Till Hänisch 2001 Servertypen

Webserver, © Till Hänisch 2001 Servertypen contd.

Webserver, © Till Hänisch 2001 Was haben alle Webserver gemeinsam ? HTTP Clients senden HTTP-Requests Server antwortet mit HTTP-Response TCP/IP Verbindung über TCP/IP untere Schichten verschieden (Ethernet, ISDB, GSM,...) Zugang zu (Informations-) Resourcen Webserver liefert Informationen statische/dynamische (Word-Datei/Webcam,....) Seiteneffekte HTTP-Anfragen können Daten auf dem Server verändern Daten oder Zustand

Webserver, © Till Hänisch 2001 Was ist unterschiedlich ? HTTP Version, Request-Typen Netzanbindung permanent/nach Bedarf Datenquellen Servertypen/Optimierung General purpose hohe Leistung ( Flexibilität (Datenquellen,...) Spezialaufgaben (Webcam) klein HTTP nur teilweise implementiert

Webserver, © Till Hänisch 2001 HTTP Request GET /index.html HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/4.51 [de]C-CCK-MCD DT (WinNT; I) Host: dbserv Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */* Accept-Encoding: gzip Accept-Language: de Accept-Charset: iso ,*,utf-8 Unterschiedliche Request Typen, u.A.  GET (liefert Resource aus)  POST (Resource an Webserver, i.A. Parameter)  TRACE (Route verfolgen)  DELETE (Resource auf dem Server löschen)  PUT (Resource an Server schicken)

Webserver, © Till Hänisch 2001 Response HTTP/ OK Date: Thu, 17 May :12:50 GMT Server: Apache/ (Unix) (SuSE/Linux) Last-Modified: Thu, 17 May :05:17 GMT ETag: "3aed8-40-3b03944d" Accept-Ranges: bytes Content-Length: 64 Connection: close Content-Type: text/html X-Pad: avoid browser bug.... Status codes, z.B.  200 OK  204 No Content  400 Bad Request  404 Not found  500 Internal server error

Webserver, © Till Hänisch 2001 Was tut der Server ? auf eingehende (TCP) Anfrage warten Server Socket HTTP Anfrage analysieren HTTP Parser Anfrage bearbeiten Zugriff auf (Dateisystem) Daten Anfrage an anderes System weiterleiten Mit HTTP Response antworten HTTP Header Daten an Client schicken

Webserver, © Till Hänisch 2001 Ablauf BrowserServer Request User Resource 'holen' Response Inhalt analysieren Request Resource 'holen' Response Transaktion 1 Transaktion 2

Webserver, © Till Hänisch 2001 Ablauf GET Methode URL: Ablauf im Client: Host aus URL extrahieren IP Adresse durch DNS Abfrage auflösen Port Nummer extrahieren 80 (default) TCP Verbindung (Socket) herstellen zu , Port 80 Message an Server schicken GET /index.html HTTP/1.0 Vom Socket lesen, bis Verbindung vom Server geschlossen wird Header (Statuscode,...) auswerten, ggf. Inhalt extrahieren und darstellen

Webserver, © Till Hänisch 2001 Ablauf contd. GET Methode URL: Ablauf im Server: Ein Prozess auf wartet auf eine Verbindung an Port 80 Wenn Verbindungsaufbau erfolgt, dann Vom Socket bis zur ersten Leerzeile lesen Request analysieren (Method und Resource extrahieren) Resource holen (z.B. aus Dateisystem) Request Header (Status) auf dem Socket ausgeben Inhalt der Resource auf den Socket schreiben Socket schließen (Verbindung trennen)

Webserver, © Till Hänisch 2001 Ablauf im Detail BrowserServer GET /index.html HTTP/1.0 URL Socket öffnen Request schicken Verbindung akzeptieren vom Socket lesen CR/LF request bearbeiten Methode GET Resource /index.html Header senden HTTP/ OK CR/LF.... Inhalt senden Socket schließen Inhalt darstellen

Webserver, © Till Hänisch 2001 Images und co. BrowserServer User Inhalt analysieren... HTML-Seiten enthalten typ. mehrere Images,... deshalb mehrere Verbindungen

Webserver, © Till Hänisch 2001 TCP Handshake ClientServer SYN SYN, ACK ACK Übertragung von Daten FIN ACK FIN Client initiiert Verbindung durch SYN Anfrage, Server bestätigt Empfang durch ACK und SYN (er möchte auch), Client bestätigt durch ACK Client möchte Verbindung schließen, signalisiert durch FIN. Server bestätigt dies durch ACK und schließt auch Verbindung (FIN), Client bestätigt dies durch ACK

Webserver, © Till Hänisch 2001 Problem Beim Aufruf einer URL durch z.B. GET müssen übertragen werden: 3 Pakete (TCP Verbindungsaufbau) 1 Paket (HTTP Request) 1 Paket (HTTP Response) 1 Paket (Bestätigung) 4 Pakete (TCP Verbindungsende) insgesamt also 10 Pakete Bei Latenz von 70 ms (z.B. TDSL) vergehen 700 msec bis Daten übertragen sind (Für jede Request !!!!) Seite mit 10 Bildern braucht also 7000 ms !!! (Natürlich nicht, die einzelnen Dateien werden parallel geholt) Client und Server warten also im wesentlichen !!! Abhilfe: HTTP 1.1: Verbindung muß nicht sofort geschlossen werden, kann wiederverwendet werden

Webserver, © Till Hänisch 2001 Resource 'holen' ? Wie findet der Webserver eine Resource ? Pfad wird ausgewertet hier: /lomiweb Falls Abbildung (Alias) definiert, wird dieser transformiert (z.B. lomiweb -> web) Server geht von der DocumentRoot aus, z.B. c:\InetPub (ist im Webserver konfiguriert) und hängt den Pfad an, sucht also in c:\InetPub\web nach der Datei, hier index.html Webserver öffnet die Datei c:\InetPub\web\index.html wenn diese existiert, wird sie ausgeliefert

Webserver, © Till Hänisch 2001 Resource holen contd. Ist das Verzeichnis für ausführbare Dateien konfiguriert (CGI), wird die Datei nicht gelesen, sondern ausgeführt und das Ergebnis an den Client geschickt z.B. Verzeichnis wird extrahiert (/cgi-bin) Server prüft (in seiner Konfiguration), ob hier Dateien ausgeführt werden sollen (CGI: Common Gateway Interface), falls ja wird das Programm printenv (in einem eigenen Prozeß) ausgeführt, (Parameter werden im Environment übergeben) Ergebnis an den Client übertragen

Webserver, © Till Hänisch 2001 Uniform Resource Locator Verweis auf eine Resource, enthält Protokoll (z.B. ftp://,...) Host (DNS-Name oder IP-Adresse) Port (:80, :8080, Default ist 80) Name (/index.html, /cgi-bin/printenv,...) Beispiele

Webserver, © Till Hänisch 2001 Parameter Wie erhält z.B. Suchprogramm das zu suchende Wort URL der Form: z.B....suche?Begriff=Internet QueryString QUERY_STRING="Begriff=Internet" mehrere mit ?p1w1&p2=w2... Eingabe durch Benutzer ? HTML Forms, INPUT Tags

Webserver, © Till Hänisch 2001 Parameter contd. Problem: viele/lange Parameter Länge von URL ist begrenzt Platz im Environment ist begrenzt (OS spezifisch) Lösung: POST GET /Suche?Begriff=Internet HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/4.51 [de]C-CCK-MCD DT (WinNT; I) Host: localhost Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */* Accept-Encoding: gzip Accept-Language: de Accept-Charset: iso ,*,utf-8 POST /Suche HTTP/1.0 Connection: Keep-Alive Content-type: application/x-www-form-urlencoded Content-length: 16 Begriff=Internet

Webserver, © Till Hänisch 2001 Methoden Auswahl im Tag xxx=GET xxx=POST GET maximale Länge von Parametern beschränkt Probleme bei Sonderzeichen (blank,...) URL encoding können als Bookmark gespeichert werden besser nicht für Bestellungen,... POST unbeschränkte Länge der Parameter auch ganze Dateien,...

Webserver, © Till Hänisch 2001 Typische Anwendung Suchmaschine Telefonbuch Telefonbuch Name:

Webserver, © Till Hänisch 2001 Ergebnis Telefonbuch Liste Suchergebnis Müller, Hans Müller, Hugo Müller, Karin

Webserver, © Till Hänisch 2001 HTTP 1.0 Basic Authentication Nicht jeder Client soll jede Resource sehen können Für jede Resourcen können Zugriffsrechte festgelegt werden basic authentication einfaches username/password Schema unverschlüsselt, Kennwörter werden im Klartext übertragen !!! Ablauf: Client fordert Resource an Server antwortet mit Statuscode 401 unauthorized Client fragt Benutzer nach Benutzername/Kennwort und fordert die Resource nochmal an, mit Header Authorization: : Server prüft wenn korrekt, wird Resource ausgeliefert Internet Explorer kann auch automatisch (OS) Auth. senden Sicherheitsproblem !!!

Webserver, © Till Hänisch 2001 Virtual hosts jeder will seine eigene Website - - aber keinen eigenen Server betreiben: mehrere Webserver auf einem Rechner z.B. Webspace Provider der oder die Webserver soll - je nach URL - die entsprechenden Daten liefern Provider Computer: server1.provider.de Internet /Firma-A /Firma-B /Firma-C /Verein

Webserver, © Till Hänisch 2001 Lösung verschiedene Ports jeder Webserver hat eigenen Port, z.B. 80, 81, 82, 83, 84,... Nur einer kann den (Default- ) Port 80 haben, alle anderen müssen explizit den Port angeben: verschiedene IP-Adressen Jeder Kunde/Domain hat eigene IP-Adresse Server hat mehrere IP-Adressen (auf einem Interface) Zahl von Adressen je Rechner begrenzt Verschwendung von Adressen (IP V4 Adressen sind knapp) Non-IP basierte virtual Hosts (HTTP 1.1) Alle Domains haben gleiche Adresse und gleichen Port Webserver holt aus HTTP-Protokoll die Domain GET /index.html HTTP/1.1 Host:

Webserver, © Till Hänisch 2001 Server Basics Verbindungsorientiert (TCP) Iterative Server Anfragen werden nacheinander beabeitet einfach (embedded devices) Wenn neue Anfrage kommt, während andere bearbeitet wird --> Fehler Concurrent Server gleichzeitig können mehrere Anfragen bearbeitet werden komplex(er) verschiedene Techniken multi process (neuer Prozeß für jede Anfrage) multi threaded (neuer Thread für jede Anfrage) thread/process pool (dispatcher/worker,...) while (true) { // Auf eingehende Verbindung warten Socket sockClient = sockListen.accept(); System.out.println("Connection created"); // Neue Verbindung, Thread starten ChatConnection C = new ChatConnection(sockClient); C.start(); }

Webserver, © Till Hänisch 2001 Proxy Browser Proxy vts.uni-ulm.de/index.html Client fordert Seiten vom Proxy an, dieser holt sie vom Web-Server und behält lokale Kopie (Cache) Browser Bei jedem Zugriff prüft der Proxy, ob er eine aktuelle Kopie im Cache hat und liefert ggf. diese aus. Dadurch wird der Server entlastet (er muß die Seite nur einmal ausliefern) Falls die Verbindung zum Server (zum Internet) langsam ist (z.B. ISDN,...) werden die (wiederholten) Zugriffe erheblich schneller !! Steuerung durch HTTP Header