X12L 21. Oktober a) HTML - ein Dateiformat, welches maschinenlesbare Verweise (links) enthält,

Ähnliche Dokumente
ARCHITEKTUR VON INFORMATIONSSYSTEMEN

HTTP. Arthur Zaczek. Aug 2015

2. WWW-Protokolle und -Formate

Protokolle. Konrad Rosenbaum, 2006/7 protected under the GNU GPL & FDL

Hypertext Transfer Protocol

15. Das Hypertext Transfer Protokoll HTTP - Überblick. 1. Requests und Responses. 2. Content Negotiation. 3. State Management (Cookies)

7. OSI-Modell als Rollenspiel

Netzwerke. Netzwerk-Programmierung. Sven Hartmeier.

Netzwerk-Programmierung. Netzwerke. Alexander Sczyrba Michael Beckstette.

Simple serial time and HTTP client API Version 00.75

Client/Server-Systeme

Netzwerk-Programmierung. Netzwerke.

. Nachrichtenübertragung. Internetkommunikation Christof Fox. Wie werden Nachrichten Übertragen?

HTTP Hypertext Transfer Protocol

Internet: einige Anwendungen und Protokolle

Mailserver Teil 1 Linux-Kurs der Unix-AG

8. TCP-IP Modell als Rollenspiel

Übung - Beobachten der DNS-Namensauflösung

Themen. Anwendungsschicht DNS HTTP. Stefan Szalowski Rechnernetze Anwendungsschicht

Übung - Mit Wireshark eine UDP-DNS-Aufzeichnung untersuchen

Remote Tools. SFTP Port X11. Proxy SSH SCP.

4. Network Interfaces Welches verwenden? 5. Anwendung : Laden einer einfachen Internetseite 6. Kapselung von Paketen

Vorlesung SS 2001: Sicherheit in offenen Netzen

Netzwerke Teil 12: Hypertext Transfer Protokoll

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

Projekt: Web-Server. Foliensatz 9: Projekt Folie 1. Hans-Georg Eßer, TH Nürnberg Systemprogrammierung, Sommersemester 2014

Apache HTTP Server Administration

Client-Server-Prinzip

Simple Mail Transfer Protocol, Spam und IM2000

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

2. Technische Grundlagen

Einführung. Internet vs. WWW

- Man versieht die Nachricht mit der Adresse des Empfängers und schickt Sie per Knopfdruck ab.

Netzwerke. Netzwerk - Programmierung. Alexander Sczyrba. Madis Rumming.

Anwendungsprotokolle: HTTP, POP, SMTP

Schnittstellenbeschreibung

Architektur von REST basierten Webservices

Netzwerk Linux-Kurs der Unix-AG

2. Kommunikation und Synchronisation von Prozessen 2.2 Kommunikation zwischen Prozessen

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

1 LINUX-CHEATSHEET (symbolischer Name localhost ) ist der jeweils aktuelle

3 Netzdienste im Internet. vs3 1

Rechnernetze Übung 12

Rechner mit JRE (JAVA Runtime Environement), Java Programm (mit main() Methode)

Protokolle und Dienste Prof. Dipl.-Des. Oliver Wrede Webtutorial Fachhochschule Aachen, Fachbereich Design

KN Das Internet

Grundlagen der Rechnernetze. Applikationsschicht

ARCHITEKTUR VON INFORMATIONSSYSTEMEN

Online-Publishing mit HTML und CSS für Einsteigerinnen

Filius Simulation von Netzwerken

Rechnernetze. 6. Übung

Einführung in die Programmierung. Arvid Terzibaschian

Erstellen von Web-Seiten HTML und mehr...

y Hypertext braucht Ressourcen-Identifikation y Unterschied zwischen Link und Identifier

Arbeiten im Datennetz der Universität Regensburg

LAN & Internet. Grundlagen Netzwerke LAN-2. Saarpfalz-Gymnasium. Router. Router LAN-3. Router. Kommunikation in Rechnernetzen

DV-Praktikum. Probleme mit der Hausaufgabe?

SCHICHTENMODELLE IM NETZWERK

Technische Grundlagen

Transmission Control Protocol (TCP)

Themen. Transportschicht. Internet TCP/UDP. Stefan Szalowski Rechnernetze Transportschicht

Das Hypertext Transfer Protokoll HTTP/1.1

Modul Grundlagen der Internettechnologien. von Günter Schoppe. Hannover,

Remote Tools SFTP. Port X11. Proxy SSH SCP.

Hermann von Helmholtz-Zentrum für Kulturtechnik Übung: Multimedia-Anwendungen in den Wissenschaften. Tutorium. Web-Publishing. 15.

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

Computeranwendung in der Chemie Informatik für Chemiker(innen) 5. Internet

Kommunikation im lokalen Netz

HD-Pool und Remote Tools

Webtechnologien. Stunde 6 ( ) - HTTP - HTML - Servlets - AJAX. Verschoben haben wir - JSP (Java Server Pages) - JSF (Java Server Faces)

1 Kommunikation im World-Wide-Web

Einführung in die Netzwerktechnik

Rechnernetze I. Rechnernetze I. 9 Anwendungsprotokolle SS 2014

Internet: Funktionsweise und Dienste 1. Was ist das Internet?

Web Grundlagen zum Spidering

Hardo Naumann LISA Schnittstelle Zusammenarbeit von EBÜS mit dem Leitstellensystem LISA von Dr. Pfau Fernwirktechnik GmbH

ARP, ICMP, ping. Jörn Stuphorn Bielefeld, den 4. Mai Mai Universität Bielefeld Technische Fakultät

Internet: einige Anwendungen

Kommunikationsprotokoll für monitor Version 2.0.0

Meine erste Website. Sehen und Können

Unterrichtseinheit 10

Apache Web-Server Systemhandbuch

Informatik B. Vorlesung 16 Netzwerkprogrammierung. Dr. Ralf Kunze

Perl-Praxis. CGI-Skripte. Madis Rumming, Jan Krüger.

Anleitung: Verbindung mit der Datenbank

Lernziele. World!Wide!Web!-!WWW. Eigenschaften. Das!World!Wide!Web

Einführung Internet Geschichte, Dienste, Intra /Extranet, Browser/Server, Website Upload. Dipl. Ing. Dr. Alexander Berzler

Einführung in die Netzwerktechnik

Internet, Multimedia und Content Management

Backend. Hochschule Darmstadt, Fachbereich Informatik, Wintersemester 2016/2017. Christopher Dörge, Thomas Sauer, David Müller

Transkript:

1.2 HTML/HTTP 1.2.1 Kurzüberblick: http im Netzwerk Zur Verwirklichung der Hypertextidee brauchte man a) HTML - ein Dateiformat, welches maschinenlesbare Verweise (links) enthält, b) einen (netzwerkfähigen) Leser (browser) für das Dateiformat, c) einen (netzwerkfähigen) Anbieter (server) für diese Dateien und d) HTTP - eine gemeinsame Sprache (Protokoll), in der sich Browser und Server miteinander verständigen können. Das Protokoll ist einfach gehalten und sowohl vom Aufbau als auch vom Zeichensatz her für Menschen gut lesbar. HTTP benutzt, da es zur TCP/IP-Familie gehört, andere Teile von TCP/IP mit. In Abbildung 1 erkennt man den Schichtaufbau von TCP/IP. Zwei Computer System 1 und System 2 sind miteinander per Netzwerkhardware verbunden. Nur die der beiden System 1 System 2 Browser TCP Treiber TCP Pakete IP Treiber IP Pakete Ethernet Treiber WWW Server TCP Treiber TCP Pakete IP Treiber IP Pakete Ethernet Treiber Signalpegel: Nullen, Einsen Bedeutungen der Symbole: Direkter Datenaustausch Gemeinsame Sprache ("Protokoll") Abbildung 1: Blockbild Systeme kommuniziert direkt miteinander. Innerhalb eines Systems werden die Daten von einer Schicht an die andere weitergegeben. Von oben nach unten werden sie nach bestimmten Regeln eingepackt, von unten nach oben werden sie auf dem jeweils anderen System wieder ausgepackt. 1

Damit Ein- und Auspacken bei Empfänger und Sender jeweils gleich laufen (und nicht voneinander abweichen), müssen die gleichen Schichten beider Systeme die gleiche Sprache sprechen. Die unter HTTP liegenden Schichten werden durch das Netzwerkbetriebssystem(Linux, FreeBSD, Wind.) zur Verfügung gestellt. Für HTTP selbst dagegen sind der Webbrowser und der Webserver zuständig. Damit vereinfacht sich das Blockbild wesentlich (Abbildung 2). TCP/IP stammt System 1 Browser System 2 WWW Server Betriebssystem Betriebssystem Signalpegel: Nullen, Einsen Abbildung 2: Vereinfachtes Blockbild aus der Welt der Großrechner. Dort ist es üblich, dass auf einem System mehrere Server-Dienste (HTTP, FTP, SMTP) gleichzeitig ansprechbar sind. Wie hat man das nun erreicht? Die Lösung zeigt Abbildung 3. Jedes System besitzt zur eindeutigen Identifizierung mindestens eine IP-Adresse (bzw. einen Hostnamen). Innerhalb des Systems können (bei IP-Version 4) 65536 Unteradressen unterschieden werden, so genannte Portnummern. JedesServerprogrammkannsichnuneinevon65536freienPortnummernaussuchen. 1 Zujedem TCP/IP-Protokoll(der obersten Schicht) existiert eine Standard-Portnummer. Die meisten Server und Clients benutzen, falls nicht ausdrücklich anders angegeben, genau diese Portnummer. Diese Zuordnung ist auf Linux-Systemen in der Datei /etc/services einsehbar. Hier ein Ausschnitt aus dieser Datei: ################################################################# # Service port/transp. layer ################################################################# ftp data 20/tcp # File Transfer [ Default Data] ftp 21/tcp # File Transfer [ Control ] ssh 22/tcp # SSH Remote Login Protocol 1 Meist werden die Nummern 1-1023 für ankommende Verbindungen (also für Serverprogramme), der Rest für abgehende Verbindungen (also für Clients) reserviert (davon gibt es aber viele Ausnahmen). 2

20,ftp server Client 23,telnet s. meinpc.bla Server vector 10.1.45.36 browser 80,www s. 10.1.1.20 tcp/ip Datenkanal Bedeutungen der Symbole: Richtung des Verbindungsaufbaus Datenflussrichtung Abbildung 3: Mehrere Server an einem System telnet 23/tcp # Telnet smtp 25/tcp mail # Simple Mail Transfer http 80/tcp www # World Wide Web HTTP pop3 110/tcp # Post Office Protocol, Version 3 https 443/tcp # http protocol over TLS/SSL http alt 8080/tcp # HTTP Alternate (Proxy) ################################################################# 1.2.2 HTTP-Verbindung per TELNET? Wie kann man nun herausfinden, ob ein Webserver erreichbar ist? TELNET ist ein einfaches login-protokoll in TCP/IP. Vereinfacht dargestellt ist TELNET ein Protokoll, das jedes Zeichen von der Tastatur 1:1 zum fremden Rechner übergibt und seinerseits jedes erhaltene Zeichen auf dem eigenen Rechner darstellt. TELNET eignet sich somit auch zur einfachen Fernwartung fremder Rechner (allerdings naturgemäß im Textmodus). TELNET weist zwar Sicherheitsmängel auf, ist aber gut geeignet, um andere, kompliziertere Protokolle zeichenweise nachzubauen und zu testen. Der Telnet-Client ist auch auf PC-Systemen fast immer verfügbar. Im Gegensatz zu speziellen Werkzeugen (z.b. netcat funktioniert TELNET jedoch nur mit TCP-Protokollen! Der Aufruf des Telnet-Clients ist z.b.: jk@r155pc1: $ telnet localhost 25 Mit localhost wird der eigene Rechner adressiert (man hätte auch 127.0.0.1 angeben können), 25 ist die Nummer des SMTP-Ports (man hätte auch smtp angeben können). Wichtig ist, dass (abweichend von der URL-Notation) zwischen Rechnername und Portnummer kein Doppelpunkt, sondern ein Leerzeichen stehen muss! 3

Abbildung 4: HTTP-Verbindung 1.2.3 Mitschnitt einer HTTP-Verbindung Hier ist eine recht einfache Beispielverbindung angegeben: jk@r155pc1: $ telnet 127.0.0.1 80 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is ˆ]. GET / HTTP/1.0 HTTP/1.1 200 OK Date: Sat, 08 Feb 2003 16:38:58 GMT Server: Apache/1.3.19 (Unix) (SuSE/Linux) Connection: close Content-Type: text/html <html> <head> <title>webserver Testseite</title> </head> <body> Dies ist nur eine Testseite. </body> </html> Connection closed by foreign host. Die ersten drei Zeilen stammen vom Telnet-Client. Die folgenden zwei Zeilen (GET und Leerzeile!) wurden vom Benutzer eingegeben. Der dann folgende Text kann je nach Server anders sein, er wurde offenbar vom Server zum Client geschickt. Die letzte Zeile stammt vom Client und gibt an, dass der Server die Verbindung beendet hat. Die identische Verbindung sieht im Browser aus wie in Abbildung 4 Die ganze Verbindung bestand also aus einer Anfrage (request) des Browsers und einer Antwort (response) des Servers. Nach der Antwort folgt (zumindest bei HTTP 0.9 und HTTP 1.0): stets der Abbruch der Verbindung durch den Server. Dieser Ablauf wird graphisch im allgemeinen so dargestellt wie in Abbildung 5. 1.2.4 Wie fragt man richtig? Format der Anfrage Die einfachste Anfrage in HTTP 1.0 sieht also so aus: GET / HTTP/1.0 # Anfragezeile # Leerzeile 4

Client:1202 Server:80 Anfrage (request) t Antwort (response) Abbildung 5: HTTP-Verbindung Name Zweck GET Daten vom Server holen POST Formulardaten zum Server schicken PUT Daten auf dem Server speichern DELETE Daten auf dem Server löschen Tabelle 1: HTTP-Anfrage-Methoden Die Leerzeile dient dazu, einen eventuell vorhandenen Anfrage-Rumpf (body) vom Anfrage-Kopf (head) zu unterscheiden. Die Anfragezeile (request line) hat folgenden Aufbau: Methode URL HTTP/HTTP-Version Tabelle 1 zeigt wichtige Anfrage-Methoden. Die URL (hier gleichbedeutend benutzt mit URI und URN) hat folgenden Aufbau: GET Protokoll://hostname/pfadname Wenn das Protokoll fehlt, wird HTTP angenommen: GET hostname/pfadname Wenn der Hostname fehlt, wird angenommen, dass der eigene Rechner gemeint ist: GET /pfadname Wenn der Pfadname ein Verzeichnisname ist, wird (je nach Einstellung des Webservers) als Dateiname index.html angenommen: GET / Zwischen der Anfragezeile und der Leerzeile dürfen noch eine oder mehrere so genannte Headerzeilen stehen, mit dem der Client dem Server weitere Informationen übergeben kann. 1.2.5...so schallt es heraus Format der Antwort In der Antwort des Servers findet man wieder den von der Anfrage her gewohnten Aufbau: 5

Response-Zeile ggf. Header-Zeilen #Leerzeile Antwort-Rumpf z.b. in HTML Die Response-Zeile hat dabei den Aufbau: HTTP/HTTP-Version Antwortcode Kommentar Sie lautete in unserem Beispiel: HTTP/1.1 200 OK Die Antwortcodes (hier 200) dienen dem Browser zur Analyse des Ergebnisses. Sie lassen sich in fünf Gruppen einteilen (siehe Tabelle 2). Der Kommentar (hier OK) ist ein Zusatz zur Fehlersuche durch Menschen. Die Antwort kann (wie auch die Anfrage) eine oder mehrere Headerzeilen Bereich Bedeutungen 100 199 Information 200 299 OK 300 399 Umleitung 400 499 Client-Problem 500 599 Server-Problem Tabelle 2: HTTP-Antwortcodes enthalten, die aber hier nicht interessieren. Das Format des Antwortrumpfes in HTML wird später noch genauer untersucht werden. Es handelt sich offenbar um ein für Menschen lesbares ASCII-Text-Format. Im Text sind Markierungen eingebaut, Befehle in spitzen Klammern, die entweder zur Textformatierung oder zur Navigation im Hypertext dienen. 6