www.wikidata.de-de.nina.az
Eine Webanwendung auch Online Anwendung Webapplikation oder kurz Web App ist ein Anwendungsprogramm nach dem Client Server Modell Anders als klassische Desktopanwendungen werden Webanwendungen nicht lokal auf dem Rechner des Benutzers installiert Die Datenverarbeitung findet teilweise auf einem entfernten Webserver statt Die Ergebnisse der Datenverarbeitung werden an den lokalen Client Rechner des Benutzers ubertragen Thin Client Genutzt wird eine Webanwendung dabei zumeist uber einen Webbrowser Diese kommuniziert mit dem Webserver meist uber das HTTP Protokoll Anders als Desktopanwendungen erfordern Webanwendungen kein spezielles Betriebssystem auf dem Rechner des Benutzers Manche Web Apps benotigen jedoch aktuelle Webbrowser oder spezielle Laufzeitumgebungen wie beispielsweise JavaScript Teile der Ausfuhrungslogik fuhrt man dennoch moglichst nicht erst auf dem Server sondern bereits auf dem Client Rechner aus vor allem zur vorlaufigen Validierung Eingabefehler werden so bereits lokal erkannt Ruckmeldungen an den Nutzer erfolgen dadurch sofort ohne ein Warten auf die Ruckantwort von einem fernen Server Mittels AJAX Technik werden nur Teilbereiche der Inhalte im Webclient aktualisiert ohne die Webseite erneut aufrufen zu mussen Eine solche Verteilung kann bis hin zu einer Fat Client Architektur ausgebaut werden siehe Single page Webanwendungen Durch die Verbreitung internetfahiger mobiler Smartphones und Tabletcomputer verbreitet sich die Verwendung der Abkurzung Web App zunehmend Inhaltsverzeichnis 1 Funktionsweise 1 1 Allgemeine Funktionsweise 1 2 Funktionsweise mobiler Web Apps 2 Architektur 3 Verteilungsvarianten 4 Abgrenzung 5 Vergleich 5 1 Vorteile 5 2 Nachteile 6 Geschichte 7 Frameworks und Werkzeuge 8 Sicherheit 9 Beispiele 10 Weblinks 11 EinzelnachweiseFunktionsweise BearbeitenAllgemeine Funktionsweise Bearbeiten nbsp Schematischer Datenfluss bei einer Client Server WebanwendungMan startet eine Webanwendung indem man z B im Browser die URL des Webservers eingibt und damit eine Anfrage HTTP Request sendet Der Webserver nimmt die Anfrage entgegen und ubergibt sie an die Webanwendung Dieses erzeugt oder ladt den HTML Quellcode einer Webseite welche vom Webserver zuruck zum Browser des Benutzers geschickt wird HTTP Response Diese Webseite ist die grafische Benutzeroberflache der Webanwendung Betrachtet man die Schichtenarchitektur einer Webanwendung wird die Prasentationsschicht im Webbrowser ausgefuhrt Thin Client Teile der Logikschicht und Datenhaltung werden serverseitig ausgefuhrt Durch Anklicken eines Hyperlinks auf dieser Webseite oder Ausfullen und Absenden eines Formulars startet man eine erneute Anfrage an den Webserver Hierbei werden typischerweise weitere Informationen wie z B die in dem Formular getatigten Eingaben HTTP POST die Parameter des Links HTTP GET und die Daten eines HTTP Cookie an den Webserver ubermittelt und als Eingabe durch die Webanwendung verarbeitet Uber Schnittstellen wie z B das Common Gateway Interface oder FastCGI wird die Webanwendung innerhalb des Webservers eingebunden Auf diese Weise werden Anfragen an die Webanwendung weitergeleitet und die Ausgaben der Webanwendung als Antwort zuruckgesendet Die Abarbeitung eines solchen HTTP Requests durch die Webanwendung nennt man auch Request Cycle Bei der Benutzung von Web Apps werden Sessiondaten z B Bestelldaten eines Webshops serverseitig in Datenbanken oder Dateien gespeichert Benutzerbezogene Daten konnen auch clientseitig durch HTTP Cookies gespeichert werden Serverseitige Sitzungsinformationen verbrauchen je aktive Benutzersitzung Serverressourcen Ebenfalls erschweren serverseitige Sitzungsinformationen eine horizontale Skalierung der Webanwendungen Alternative Architekturansatze fur Webanwendungen wie Single page Webanwendungen oder das REST Paradigma kombinieren daher die serverseitige mit der clientseitigen Ausfuhrung Wahrend eine Webanwendung einst nur den HTML Quellcode der Webseiten erzeugte werden seither auch Bilder Animationen Videos Audiodateien und PDF Dokumente erzeugt Funktionsweise mobiler Web Apps Bearbeiten Hauptartikel Mobile Web Apps Webanwendungen weisen den Vorteil auf dass sie auf beliebigen Endgeraten betrieben werden konnen Das Endgerat benotigt einen Webbrowser der die erforderlichen Webstandards wie HTML5 oder JavaScript unterstutzt Im Bereich von mobilen Anwendungen existieren Plattform spezifische Schnittstellen zur Anwendungsentwicklung Hierbei muss fur jede Zielplattform eine eigene Implementierung umgesetzt werden Solche Umsetzungen werden als native App bezeichnet Webanwendungen konnen hingegen auf allen Plattformen ausgefuhrt werden Sie werden als mobile Web App bezeichnet Architektur BearbeitenEine Webanwendung lauft in der Regel auf dem Webserver kann aber auch auf einen oder mehrere Applicationserver ausgelagert sein welche von einem oder mehreren Webservern mit Benutzeranfragen bedient werden Dabei kann man zwei Architekturen unterscheiden Standalone Die Webanwendung ist ein eigenstandiges Binarprogramm oder ein von einem eigenstandigen Binarprogramm interpretiertes Skript welches fur jede Anfrage neu gestartet wird Man nennt solche Anwendungen meist CGI Programme Integriert Die Webanwendung ist Teil des Webservers oder ein vom Webserver interpretiertes Skript Es muss nicht mehr fur jeden Request Cycle ein Programm gestartet werden Beispiele PHP Perl Python Ruby jeweils durch entsprechende Module des Webservers interpretiert Java Servlet JavaServer Pages oder ASP NET Verteilungsvarianten BearbeitenEine Webanwendung wird klassischerweise verstarkt serverseitig ausgefuhrt Als Verteilungsvarianten liegen ebenfalls Ansatze vor welche eine client lastigere Ausfuhrung einer Webanwendung vorsehen Der Webclient wird hierbei zu einer zunehmenden unabhangigen Einheit um serverseitige Ressourcen zu entlasten 1 Diese Ansatze sind insbesondere fur B2C Anwendungen wie z B Facebook oder Gmail relevant da bei solchen Projekten mit grossen Benutzerzahlen zu rechnen ist Es kann ebenfalls die User Experience verbessert werden da nicht fur jede Interaktion mit dem Webclient eine Client Server Kommunikation ausgelost werden muss welche die Reaktionszeiten von Webanwendungen verlangsamt Rich Internet Application Eine Rich Internet Application RIA setzt per Definition ein hoheres Mass an Programmlogik im Client voraus um beispielsweise Berechnungen anstatt auf dem Server auf dem Client durchzufuhren Strenggenommen handelt es sich bei Webprojekten mit Webanwendungen die JavaScript incl AJAX Java Applets Flash Animationen ActiveX Plugins u a einsetzen auch um RIAs sofern diese Elemente an der Interaktion mit dem Benutzer beteiligt sind Single page Webanwendungen Eine Single page Webanwendung kombiniert den RIA Ansatz mit Webservices Hierbei wird die vollstandige Prasentationsschicht einer Webanwendung clientseitig umgesetzt Ebenfalls konnen weitere Funktionalitaten des serverseitigen Fachkonzepts sowie eine Datenhaltung als Zwischenspeicher fur einen Offlinebetrieb der Webanwendungen auf dem Client ausgefuhrt werden 1 Es handelt sich somit um eine Fat Client Architektur fur Webanwendungen Bei diesem Ansatz ist der Webserver lediglich fur die Verteilung von Javascript CSS und Bilddateien und fur die Bereitstellung von Nutzdaten uber Webservices verantwortlich z B per REST API Durch solche Ansatze entstehen haufig sogenannte Hybrid Apps Sie vereint die Vorteile von Native Apps und Web Apps indem sie auf die Softwarekomponenten des mobilen Endgerats zugreifen und gleichzeitig unterschiedliche Plattformen bedienen kann Abgrenzung BearbeitenWebservice Mit einem Webservice stellt ein Webserver Informationen in einem strukturierten Format zur Verfugung das nicht primar zur direkten Anzeige gedacht ist Die Verwendung von XML genugt alleine nicht zur Abgrenzung gegen eine Webanwendung da diese seit der Einfuhrung von XHTML auch auf XML zuruckgreifen Bei einem Webservice sind XML Daten aber zur Weiterverarbeitung in einem beliebigen Programm auf dem Client gedacht Hierbei ist selbst die Interaktion mit einem Benutzer keine zwingende Voraussetzung Als Datenformat wird ebenfalls das JSON Format eingesetzt Dies bietet Vorteile bei der Konsumierung durch einen Javascript basierten Webclient da so das Parsen von XML Strukturen entfallt Vergleich BearbeitenVorteile Bearbeiten Webanwendungen setzen auf dem Computer des Benutzers nur einen Webbrowser voraus welcher in der Regel schon vorhanden ist Im Gegensatz zu herkommlichen Desktop Anwendungen ist keine weitere Installation von Software notwendig wenn man von Browser Plugins wie Flash absieht Dadurch erreichen Webanwendungen einen hohen Grad an Plattformunabhangigkeit sofern viele Browser unterstutzt werden Muss die Logik einer Webanwendung geandert werden sind Anderungen nur an einer zentralen Stelle auf dem Webserver notwendig was sich gunstig auf die Wartungskosten auswirkt Hierdurch ergeben sich auch Sicherheitsvorteile Sicherheitslucken konnen sofort behoben werden auch sind selbst bei vollstandiger Kompromittierung der Webanwendung im Regelfall keine anderen Programme auf dem Anwender System gefahrdet Nachteile Bearbeiten Fur die Nutzung einer Webanwendung wird eine Verbindung zum Webserver benotigt Die Datenrate der Verbindung muss ausserdem auf die Anforderungen der Webanwendung ausgelegt sein Dieser Umstand schliesst Webanwendungen fur eine Reihe von Einsatzszenarien wie z B die mobile Offline Benutzung per Definition aus Webanwendungen identifizieren angemeldete Benutzer per Session ID Daraus konnen sich Sicherheitsprobleme ergeben siehe unten Webanwendungen sollten im Idealfall mit allen Webbrowsern richtig funktionieren In der Praxis ist dies allerdings keineswegs selbstverstandlich da die Browser HTML trotz bestehender Standards W3C unterschiedlich interpretieren Die leichte Abweichung in der Darstellung zwischen verschiedenen Browsern ist meist unerheblich verheerender sind Unterschiede in der JavaScript Interpretation weshalb haufig Browserweichen verwendet werden mussen teilweise sogar fur unterschiedliche Browser Versionen Ausserdem ist durch den oben dargestellten Request Cycle nur eine asynchrone Verarbeitung moglich was eine Reihe von Anwendungsgebieten z B die Bearbeitung von Videos als Webanwendung ausschliesst oder deutlich erschwert Weiterhin sind die Moglichkeiten zur Implementierung von Nutzerinteraktionsmoglichkeiten sowie der Zugriff auf Hardwareressourcen des Clients deutlich eingeschrankter Geschichte BearbeitenFur eine Webanwendung ist es notwendig Benutzereingaben zu empfangen Die heute hierfur verwendeten HTML Formulare sind erstmals im Entwurf fur HTML vom 8 November 1993 enthalten 2 Aber schon die erste HTML Version von Tim Berners Lee bot mit dem Isindex tag eine Moglichkeit Parameter an den Webserver zu schicken Die Parameter wurden dabei an die URL angehangt der Vorlaufer der HTTP Get Methode Das erste grossere System das hiervon Gebrauch machte war sehr wahrscheinlich ein Web Interface zum SPIRES HEP einer Datenbank der Stanford Universitat 3 Dieser Urahn aller heutigen Webanwendungen ging 1991 online Der erste Webbrowser der eine umfangreiche Unterstutzung fur HTML Formulare implementierte war der NCSA Mosaic 2 0 im Dezember 1993 damals der Browser mit der grossten Verbreitung Die erste serverseitige Schnittstelle zum Empfang von Formulardaten war htbin Diese wurde am 4 November 1993 als Teil der Version 2 13 des W3C HTTP Servers veroffentlicht Bereits am 11 Februar 1994 folgte im Release 2 15 beta die CGI Schnittstelle die bis heute im Gebrauch ist CGI ist von der verwendeten Programmiersprache unabhangig Fur die ersten Webanwendungen wurde C oder Perl verwendet Perl bot sich wegen der machtigen Funktionen zur Verarbeitung von Zeichenketten an Die erste Webanwendung die von einer breiten Offentlichkeit wahrgenommen wurde entstand ebenfalls an der Stanford Universitat Zwei Studenten entwickelten aus ihrer personlichen Bookmarkverwaltung das Webverzeichnis Yahoo Als Programmiersprache verwendeten sie Perl In den folgenden Jahren gab es Weiterentwicklungen der CGI Schnittstelle welche die Performance verbesserten Im Fruhjahr 1997 veroffentlichte Sun Microsystems die Servlet Technologie Servlets sind Java Programme die CGI Programmen sehr ahnlich sind Der Hauptunterschied besteht darin dass ein HTTP Request nicht in einem eigenen Prozess sondern lediglich einem eigenen Thread abgearbeitet wird Dies brachte einen gewaltigen Performancegewinn Das Verfahren Webseiten aus HTML Code zusammenzusetzen der fest im Programmcode hinterlegt war barg jedoch ein grosses Problem Es war umstandlich zu programmieren und ermoglichte keine Trennung von Logik und Inhalt Dieses Problem wurde von mehreren Seiten auf ahnliche Weise gelost Der Programmcode fur die dynamisch erzeugten Ausgaben wurde in das sonst statische HTML eingebettet Diesen Ansatz verfolgen die Sprache PHP die um das Jahr 1997 aus einem Perl basierten Projekt entstand JavaServer Pages die auf Servlets basieren und Active Server Pages ASP von Microsoft In der Zeit des grossen Internet Booms um die Jahrtausendwende erlebten Webanwendungen einen gewaltigen Schub Viele der von der Borse gefeierten Firmen der New Economy bauten ihr Geschaftsmodell auf einer Webanwendung auf Die ubertriebenen Erwartungen fuhrten 2001 zum Platzen der sogenannten Dotcom Blase In dieser Zeit wurden aber auch Webanwendungen wie z B eBay Yahoo und Google geboren die heute zu einem selbstverstandlichen Teil des Web Lebens geworden sind Seit dem Einzug von AJAX werden bei Webanwendungen zunehmend die clientseitigen Ressourcen beim Betrieb der Anwendung einbezogen Durch den Wunsch nach mehr Interaktivitat wurde es notig mehr Inhalte per AJAX nachzuladen und die DOM Struktur der aktuellen Ansicht dynamisch zu erweitern Die hierzu benotigte Steuerungslogik wird mit JavaScript umgesetzt und im Webbrowser ausgefuhrt Der klassische Seitenwechsel ist hierdurch nicht mehr zwingend erforderlich um neue Seiteninhalte darzustellen Das Paradigma von Single page Webanwendungen basiert auf einer ausschliesslich clientseitigen Ausfuhrung der Prasentationsschicht einer Webanwendung Als akademische Disziplin ist das Web Engineering entstanden das Methoden des Software Engineering auf die Entwicklung von Webanwendungen ubertragt Frameworks und Werkzeuge BearbeitenEs gibt unterschiedliche Frameworks zur Erstellung von Web Apps Webframeworks zur Datenhaltung datenverarbeitung und darstellung wie ASP NET MVC Spring oder Symfony Java Frameworks zur serverseitigen eventbasierten Erstellung von grafischen Benutzeroberflachen wie Vaadin CSS Frameworks fur grafische Benutzeroberflachen besonders fur Responsive Webdesign wie Bootstrap JavaScript Frameworks fur grafische funktionale und eventbasierte Benutzeroberflachen und asynchrone Datenubertragung wie Sencha Touch jQuery UI oder AngularJS Siehe auch Liste von Webframeworks Die Kompetenzen von klassischen Webdesignern und mobilen Web App Entwicklern unterscheiden sich massgeblich in dem Punkt dass der Fokus im mobilen Internet im Kontext und nicht nur im Inhalt liegt Besonders das User Interface ist ein wichtiger Faktor bei der Entwicklung von mobilen Web Apps Sicherheit Bearbeiten Hauptartikel Sicherheit von Webanwendungen Sicherheit von Webanwendungen ist ein zu weites Feld um es hier allumfassend zu behandeln Darum beschrankt sich dieser Abschnitt auf die Beschreibung allgemein bekannter Angriffsmoglichkeiten im Zusammenhang mit Webanwendungen Angriffe gegen eine Webanwendung konnen durch die Vermeidung von Sicherheitslucken wahrend der Implementation verhindert oder durch den Einsatz von vorgeschalteten Web Application Firewalls erschwert oder abgewehrt werden SQL Injection Anfrageparameter mit SQL Steuerzeichen versehen Cross Site Scripting XSS Einbinden von fremden Skripten zu Manipulation des Webauftritts Session Hijacking Ubernehmen einer Benutzersitzung Cross Site Request Forgery Webclient auf andere URLs lenken Directory Traversal Manipulation von Pfadangaben um auf beliebige serverseitige Ressource zuzugreifen E Mail Injection Versenden von eigenen E Mails uber KontaktformulareDie folgenden Angriffe richten sich nicht gegen die Webanwendung selbst sind aber in deren Umfeld haufig zu finden Man in the Middle Angriff Mithoren wahrend der Client Server Kommunikation Denial of Service Uberlastung des Webservers sodass keine Anfragen mehr entgegengenommen werden konnen Phishing Kundendaten uber gefalschte E Mails oder Webauftritte stehlenBeispiele BearbeitenEinige Beispiele finden sich in der Kategorie Webanwendung Weblinks BearbeitenSicherheit von Webanwendungen Massnahmenkatalog und Best Practices vom Bundesamt fur Sicherheit in der Informationstechnik BSI Web Security Threat ClassificationEinzelnachweise Bearbeiten a b Beschreibung des Wandels von Webanwendungen SPA A Review of the HTML Document Format slac stanford edu Abgerufen von https de wikipedia org w index php title Webanwendung amp oldid 234665317