Grundlagen Internet-Technologien. Ajax und Cookies&Sessions Version 1.00

Ähnliche Dokumente
Grundlagen Internet-Technologien INF3171

Grundlagen Internet-Technologien INF3171

Multimedia im Netz. Übung zur Vorlesung. Ludwig-Maximilians-Universität Wintersemester 2010/2011

Internet-Programmierung

Web-basierte Anwendungssysteme PHP Teil 2

2. Interaktive Web Seiten. action in Formularen. Formular. Superglobale Variablen $ POST, $ GET und $ REQUEST. GET und POST

Alte Technik neu verpackt

Kompendium der Web-Programmierung

Datenbank-basierte Webserver

Medien und Webtechnologie

Internet-Technologien

Inhaltsverzeichnis. Open-Xchange Authentication & Sessionhandling

Node.js Einführung Manuel Hart

Programmieren im Web 2.0

Destructive AJAX. Stefan Proksch Christoph Kirchmayr

Geschäftsprozesse Benutzerschnittstelle

Proseminar Auszeichnungssprachen

AJAX. Autor: Othmane Mihfad

2. WWW-Protokolle und -Formate

Agenda. Ingo Ebel (ie007) Benjamin Müller (bm032) Was ist AJAX? Sicherheit Vor- und Nachteile. AJAX Frameworks. Wozu benötigt Client/Server

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

Sessions mit PHP. Annabell Langs Sessions in PHP - Annabell Langs 1

Übertragung der Cookies per HTTP

Grundlagen Internet-Technologien. Clientseitige Web-Programmierung

Perl-Praxis. CGI-Skripte. Jörn Clausen

Sicherheit in Rich Internet Applications

Persistente Daten verwalten mit PHP

1 Allgemein. 2 1st und 3rd Party Cookies. 2.1 Nutzung einer eigenen Track Domain

Perl-Praxis. CGI-Skripte. Jörn Clausen Jens Reeder, Jan Krüger

Online-News Ausgabe 12, Juli 2000 Seite 56

Web-Techniken Einführung in JavaScript

Einführung Servlets. JEE Vorlesung Teil 2. Ralf Gitzel

Leichtgewichtige Web 2.0-Architektur für komplexe Business-Anwendungen Nicolas Moser PRODYNA AG

Unified-E Standard WebHttp Adapter

Google Gears Offline Web?

PHP Funktionen, Globale Variablen

Datenbanken und Netzanbindung

Session Management und Cookies

Agenda. Einführung AJAX Was ist eigentlich AJAX?

JavaScript O'REILLY. Das umfassende Referenzwerk. Deutsche Übersetzung von Ralf Kuhnert, Gisbert W. Selke & Harald Selke

Einführung in PHP. NLI-Kurs BBS am Museumsdorf Cloppenburg Außenstelle Löningen

Java - Webapplikationen

V by WBR1/BFH-TI 2011 by MOU2/BFH-TI

Übergreifende Session auf bahn.de Verwendung von Session-Cookies

Webdesign mit HTML und CSS Einführungsabend

Eine Untersuchung der Funktionen des Apache Wicket Webframeworks

Vorteil. Einfach zu realisieren performant. Übersichtlich performant. "Vererbung" von Änderungen an vererbender Tabelle

Webentwicklung mit Vaadin 7. Theoretische und praktische Einführung in Vaadin 7. Christian Dresen, Michael Gerdes, Sergej Schumilo

Content-Management-Systeme

Python VS Perl. Storage Monitoring per API statt SNMP. Björn Müller Marcel Denia. comnet GmbH

PPS-Design einer eigenen WWW-Homepage WS 2002/2003. Anforderungen an eine Webseite

PHP-5-Zertifizierung. Block 12 Security.

Programmieren von Webinformationssystemen

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick Parameterübergabe...

XPages Good to know. Benjamin Stein & Pierre Hein Stuttgart 7. Mai 2015

JSP Usereingabe. Inhalt. 1 Zielsetzung. SEW(3.Jg) Unterlagen zu Java Server-Pages Teil 2

Sicherheit in Webanwendungen CrossSite, Session und SQL

Web-basierte Anwendungssysteme PHP-Einführung

Proseminar: Website-Management-Systeme

Web Applications Vulnerabilities

Einstieg in AJAX-Programmierung

Michael Seeboerger-Weichselbaum. Das Einsteigerseminar JavaScript 4., überarbeitete Auflage

«/IE Cache & Cookies» Umfrage startet nicht?

Web-Anwendungen Teil 2 PHP kl. Studienprojekt (Praktikum) Winter 2014/ Daniel Fett

Grundlagen Internet-Technologien INF3171

Informationen über die WebServices der Parlamentsdienste. Projektmanagement CH-3003 Bern

HTTP. Arthur Zaczek. Aug 2015

Python CGI-Skripte erstellen

Internettechnologien Vorlesung für Master-Studierende Geoinformatik/-management Sommersemester 2016

Implementieren von Klassen

Studygroup AJAX 1 / 28. Studygroup AJAX. Christian Kroiß / 4A Solutions GmbH

Dynamische Webseiten mit PHP. Oder: LAMP - The open way

Übung zur Vorlesung Multimedia im Netz

Inhaltsverzeichnis. Einleitung... 11

Systemvoraussetzungen CustomX. Customer Relationship Management

Netzwerk Technologien in LabVIEW

Swetlana Stickhof. Universität Heidelberg

Inhaltsverzeichnis. Hinweise zum Gebrauch des Buches... XIII. Teil I Grundlagen der Web-Programmierung

Tobias Wassermann. Sichere Webanwendungen mit PHP

Schnittstellenspezifikation: ZEUS-Upload per Clientsoftware

Grundlagen der Informatik 2

Web-basierte Anwendungen 4750 Web-Engineering

Automatisches Exploratives Testen von Webanwendungen

OWASP Stammtisch München Sep 2014 XSS und andere Sicherheitslücken aus der Perspektive des Programmcodes

Herzlich Willkommen! eine praxisnahe Übersicht. Mit Java ins Web - mb@bebox.franken.de (c) Michael Behrendt -

Inhaltsverzeichnis. Einleitung

APEX Datenverwaltung Wo sind die Daten gerade? Dr. Gudrun Pabst

Was ist ein Web Service?

AJAX und Ruby on Rails

Websockets. Verbindungskanal zwischen Client-Anwendung (JavaScript in Browser) und Server.

Multimedia im Netz Wintersemester 2013/14. Übung 10 (Nebenfach)

AJAX Implementierung mit Joomla!

ESB - Elektronischer Service Bericht

Erweiterte Interaktion mit Trees und Charts in APEX

01 Einführung in PHP. Einführung in PHP 1/13 PHP in Aktion

Performance Tuning

So bringen Sie Speed in Ihre Webpräsenz ADDISON-WESLEY. An imprint of Pearson Education

Inhaltsverzeichnis. Hinweise zum Gebrauch des Buches... XIII. Teil I Grundlagen der Web-Programmierung

Perl-Praxis CGI-Skripte 0-0/22

vrealize Log Insight- Entwicklerressourcen 11. September 2017 vrealize Log Insight 4.3

Transkript:

Ajax und Cookies&Sessions Version 1.00 28.6.2010 1

aktuelles 2

Erweiterungen wir betrachten zwei Erweiterungen: Personalisierung der Web-Verbindung durch Cookies & Sessions AJAX: Kombination von Client- und Servertechniken 3

Individualisierung im Web die klassische Web-Site ist zustandslos wesentliche Eigenschaft die Website kennt keine Vorgeschichte für viele Anwendungen ist dies nicht sinnvoll 4

Business-Applications Business-Applications brauchen ganz typisch einen Zustand wie angemeldet Rolle und Rechte trivial-ansatz: hidden fields im HTML-Formular Übungsaufgabe zum Ratespiel im Web 5

hidden fields (I) HTML-Formulare können über versteckte Felder verfügen nicht sichtbar (werden nicht angezeigt) werden aber ganz konventionell als key-value-paare übertragen Übertragung mit HTTP-Methoden GET und POST 6

hidden fields (II) Vorteile der Technik: absolut unabhängig von Clientsoftware/-konfiguration Client wird nicht belastet reine HTML-Technik Nachteile der Technik: anstrengend, da nach dem ersten Formular alle Formulare dynamisch generiert werden und alle verstecketen Felder immer übertragen werden müssen im HTML-Source-Code sichtbar: "strg-u" 7

bessere Ansätze Cookies und Sessions zur Personalisierung von Websites Beispiel: neuer Browser, Besuch von amazon.de und dort suchen nach bestimmten Artikel Browser schließen neuer Besuch von Amazon: es werden passende Artikel angeboten 8

Cookies Zusatzinformationen werden lokal auf dem Client abgelegt und müssen so nicht jedesmal übertragen werden Erweiterung des ursprünglichen HTTP-Protokolls 0.9 9

Cookie-Informationen 10

Prinzip des Cookies ein Cookie ist ein key-value-paar hat eine begrenzte Haltbarkeit ist Bestandteil des HTTP-Protokolls wird im HTTP-Header übertragen einfache Textdatei auf dem Client jedes Cookie gehört zu einer Website alle Browser speichern ihre Cookies getrennt für den jeweiligen Browser: alle Browser-Tabs und Browser-Fenster haben die gleichen Cookies DOM: Cookie gilt für navigator-objekt 11

Datenstruktur des Cookies name, value (durch "=" getrennt) version expires max-age domain path port comment commenturl secure discard 12

Cookies und Sicherheit keine wirkliche Gefährdung des Clients aber: "Ausspionieren" des Clients (auch von fremden Sites) einfache Manipulation des Cookies Gefahr für Diensteanbieter 13

Cookies in PHP Prinzipiell: Cookie ist Bestandteil von HTTP Cookie wird vor dem Dokumentenbeginn <HTML> gesetzt PHP-Methode setcookie( ) setzt Cookie in PHP Argument: key-value-paar klassisches PHP : Variable mit Bezeichner $key und Belegung value zur Verfügung Zugriff auf Cookies über das PHP-Superglobal $_Cookie 14

Syntax setcookie bool setcookie ( string name [, string value [, int expire [, string path [, string domain [, bool secure]]]]] ) name, value, path klar expire: Unix-timestamp, wann Cookie ungültig wird domain: (Sub-)Domainen, die das Cookie benutzen können secure: wenn true, dann Cookie-Informationen nur über https übertragbar 15

Beispiel: Zähler, Dauer 16

17

Cookies in anderen Sprachen Perl: Modul CGI::Cookie my $cgi = new CGI; my $cookie = cgi->cookie(-name=>'name', -value=>'wert'); Python: Modul Cookie Ruby: ähnlich Perl 18

Sessions Cookie: Daten liegen auf dem Client Session: Daten liegen auf dem Server, werden über eine Session-ID der Browserinstanz zugeordnet Kennzeichnung der Session über Session-ID diese Session-ID ist dann typischerweise ein Cookie auf dem Client 19

Prinzip 20

Sessions in PHP die eigentlichen Session-Daten liegen auf dem Webserver üblicherweise in /tmp, konfigurierbar über session.save_path Daten sind dort sicher neue Session nur möglich vor der ersten Ausgabe Beginn einer Session: session_start() Session-Daten in Suberglobal $_SESSION Ende einer Session: session_destroy() 21

22

23

24

25

26

die Session-ID ist ein Cookie mit dem Namen PHPSESSID 27

PHP-Sessions ohne Cookies es gibt auch Alternativen ohne Cookies: Session-ID an die URL anfügen: Session->url() wieder als verstecktes Formular-Feld: Session->hidden() 28

Sessions in Perl es gibt mehrere (viele) Möglichkeiten, Sessions in PERL (CGI) zu implementieren Session-Funktionalität über verschiedene PERL-Module Suche in CPAN 29

Modul CGI-Session aktuelle Version: 3.95 Autor: Sherzod Ruzmetov die Session-Informationen können serverseitig wie schon in PHP verschieden abgelegt werden File (default) Database Modul CGI::Session ist davon unabhängig, spezifischer Treiber wird dazugeladen wie bei DBI 30

CGI::Session::File Standard-Fall: Session-Information in Datei auf Server notwendiger Parameter: Verzeichnis für die Ablage der Datei use CGI::Session; $session = new CGI::Session( driver:file, undef,{directory=> C:/temp }); jede Session in separater Datei Defaultname: cgisess_%s mit _%s : session-id 31

Clientseitig: Cookie wie in PHP wird Clientseitig die session-id im Cookie abgelegt: $cookie = $cgi->cookie(cgisessionid => $session->id); print $cgi->header(-cookie=>$cookie); 32

damit verliert die Website die Eigenschaft "Zustandslos" wesentliche Erweiterung unserer bisherigen Fähigkeiten und Möglichkeiten! 33

Ajax: zunächst Abkürzung für Asynchronous JavaScript And XML Jesse J. Garrett (AdaptivePath) http://www.adaptivepath.com/publications/essays/archives/ 000385.php nicht an sich neu ( Technologiemix ), aber marketingmäßig bedeutend heute eigenständiges Synonym, kein Akronym 34

35

Beispiel für Ajax 36

technische Grundlage zunächst: proprietäre Lösung von Microsoft für IE 5 mit ActiveX allgemein: JavaScript-Objekt XMLHttpRequest wird von fast allen Browsern unterstützt Firefox ab 1.0, Opera ab 8, Safari ab 1.2, auch IE ab Version 7 37

Ablauf einer Ajax-Anfrage Browser kann JavaScript-gesteuert kontinuierlich weitere Anfragen an Server stellen (asynchron!) Neuladen eines Teils des Browsers Browser Ajax HTTP, XML, JSON,... Datenhaltung Webserver 38

Detail der Abfrage drei Schritte Erzeugung des XMLHttpRequest-Objektes: var http = new XMLHttpRequest(); Methode open aus dieser Klasse Parameter: HTTP-Methode (GET/POST), Server-URL, synchron (false) oder asynchron (true) Anzeige des Ergebnisses über JavaScript-Eigenschaft onreadystatechange (Variable readystate: 0: nicht initialisiert, 1: Laden, 2: fertig, 3: warten, 4: beendet) 39

Beispiel 1 Nachladen einer Datei mittels Ajax: Website wird geladen Ajax fügt asynchron eine Datei (HTML-Code) ein 40

41

42

43

Beispiel 2: Kommunikation mit Server Client: Ajax-Request, welcher Parameter enthält Server: PHP-Script zum Auslesen der Parameter, formatiertes Rücksenden an Client 44

45

46

47

Übersicht XMLHttpRequest-Objekt Konstruktor Methoden abort getallresponseheaders getresponseheader open send Eigenschaften onreadystatechange readystate responsetext responsexml status statustext 48

Probleme von Ajax Ajax hat auch Kritikpunkte Usability: beispielsweise haben die Browsertasten vor/zurück nun eine unlogische Bedeutung auch Ajax-Site ist nicht mehr zustandslos! Links setzen: man kann nur auf den Startzustand einer Ajax-Anwendung einen Link setzen 49

und nun haben wir zwei wesentliche Erweiterungen für die Web-Programmierung kennen gelernt: Cookies & Sessions und Ajax als nächstes: ein paar Ergänzungen und eine kleine Zusammenfassung 50