031.2 Lektion 1
Zertifikat: |
Web Development Essentials |
---|---|
Version: |
1.0 |
Thema: |
031 Softwareentwicklung und Webtechnologien |
Lernziel: |
031.2 Architektur von Webanwendungen |
Lektion: |
1 von 1 |
Einführung
Das Wort Anwendung (Application) hat im technischen Jargon eine breite Bedeutung. Handelt es sich bei der Anwendung um ein traditionelles Programm, das lokal ausgeführt wird und seinem Zweck nach autark ist, sind sowohl die Bedienoberfläche der Anwendung als auch die Datenverarbeitungskomponenten in einem einzigen “Paket” integriert. Eine Webanwendung unterscheidet sich insofern, als sie das Client/Server-Modell übernimmt und ihr Client-Teil auf HTML basiert, das vom Server bezogen und üblicherweise von einem Browser gerendert wird.
Client und Server
Beim Client/Server-Modell wird ein Teil der Arbeit lokal, auf der Clientseite, und ein Teil der Arbeit entfernt, auf der Serverseite, erledigt. Welche Aufgaben die jeweiligen Parteien übernehmen, hängt vom Zweck der Anwendung ab. Im Allgemeinen ist es Aufgabe des Clients, dem Benutzer eine Schnittstelle zur Verfügung zu stellen und den Inhalt in ansprechender Weise zu gestalten. Der Server ist für den geschäftlichen Teil der Anwendung zuständig, d.h. für die Verarbeitung und Beantwortung der vom Client gestellten Anfragen. Bei einer Shopping-Anwendung beispielsweise zeigt die Client-Anwendung eine Schnittstelle an, über die der Benutzer die Produkte auswählt und bezahlt, aber die Datenquelle und die Transaktionsdatensätze befinden sich auf dem entfernten Server, auf den über das Netzwerk zugegriffen wird. Webanwendungen führen diese Kommunikation über das Internet durch, normalerweise über das Hypertext Transfer Protocol (HTTP).
Nach dem Laden durch den Browser initiiert die Clientseite der Anwendung eine Interaktion mit dem Server, wann immer dies notwendig oder sinnvoll ist. Webapplikationsserver bieten eine Programmierschnittstelle (API), die die verfügbaren Anfragen und die Art und Weise, wie diese Anfragen gestellt werden sollen, definiert. Der Client erstellt also eine Anfrage in dem von der API definierten Format und sendet sie an den Server, der alle Voraussetzungen für die Anfrage prüft und die entsprechende Antwort zurückschickt.
Während der Client als mobile Anwendung oder Desktop-Browser in Bezug auf die Benutzeroberfläche und die Anweisungen für die Kommunikation mit dem Server ein eigenständiges Programm ist, muss der Browser die HTML-Seite und die zugehörigen Komponenten — wie Bilder, CSS und JavaScript — beziehen, die die Oberfläche und die Anweisungen für die Kommunikation mit dem Server definieren.
Die von Client und Server verwendeten Programmiersprachen und Plattformen sind voneinander unabhängig, verwenden aber ein wechselseitig verstandenes Kommunikationsprotokoll. Der Serverteil wird fast immer von einem Programm ohne grafische Oberfläche ausgeführt, das in hochverfügbaren Computerumgebungen läuft, so dass es immer bereit ist, auf Anfragen zu reagieren. Im Gegensatz dazu läuft der Clientteil auf jedem Gerät, das in der Lage ist, eine HTML-Oberfläche darzustellen, wie z.B. Smartphones.
Das Client/Server-Modell ist nicht nur für bestimmte Zwecke unverzichtbar, sondern ermöglicht auch die Optimierung der Entwicklung und Wartung einer Anwendung, da jeder Teil für seinen spezifischen Zweck konzipiert werden kann. Eine Anwendung, die Karten und Routen anzeigt, muss zum Beispiel nicht alle Karten lokal speichern. Es werden nur die Karten benötigt, die sich auf den Ort beziehen, der für den Benutzer von Interesse ist, so dass nur diese Karten vom zentralen Server angefordert werden.
Da die Entwickler direkte Kontrolle über den Server haben, können sie auch den von ihm bereitgestellten Client verändern. So können sie die Anwendung mehr oder weniger umfangreich verbessern, ohne dass der Benutzer explizit neue Versionen installieren muss.
Die Clientseite
Eine Webanwendung sollte auf allen gängigen Browsern auf die gleiche Weise funktionieren, solange der Browser auf dem neuesten Stand ist. Einige Browser können mit aktuellen Innovationen inkompatibel sein, aber nur experimentelle Anwendungen verwenden Funktionen, die noch nicht weit verbreitet sind.
Inkompatibilitätsprobleme traten in der Vergangenheit häufiger auf, als die verschiedenen Browser ihre eigene Rendering Engine hatten und es weniger Zusammenarbeit bei der Formulierung und Annahme von Standards gab. Die Rendering Engine ist die wichtigste Komponente des Browsers, da sie für die Umwandlung von HTML und anderen Komponenten in die visuellen und interaktiven Elemente der Benutzeroberfläche verantwortlich ist. Bei einigen Browsern, insbesondere beim Internet Explorer, war eine besondere Behandlung des Codes erforderlich, um die erwartete Funktion der Seiten nicht zu beeinträchtigen.
Heute gibt es nur noch minimale Unterschiede zwischen den wichtigsten Browsern, und Inkompatibilitäten sind selten. Die Browser Chrome und Edge verwenden dieselbe Rendering Engine (Blink). Der Safari-Browser und andere Browser, die im iOS App Store angeboten werden, verwenden die WebKit Engine. Firefox nutzt eine Engine namens Gecko. Diese drei Engines sind für praktisch alle heute verwendeten Browser verantwortlich. Obwohl die drei Engines getrennt voneinander entwickelt wurden, handelt es sich um Open-Source-Projekte, und ihre Entwickler arbeiten zusammen, was Kompatibilität, Pflege und Übernahme von Standards erleichtert.
Da sich die Browser-Entwickler sehr um Kompatibilität bemühen, ist der Server normalerweise nicht an einen einzigen Client-Typ gebunden. Im Prinzip kann ein HTTP-Server mit jedem Client kommunizieren, der ebenfalls in der Lage ist, über HTTP zu kommunizieren. Bei einer Kartenanwendung kann der Client zum Beispiel eine mobile Anwendung oder ein Browser sein, der die HTML-Oberfläche vom Server lädt.
Verschiedene Arten von Webclients
Es gibt mobile und Desktop-Anwendungen, deren Oberfläche aus HTML gerendert wird und die, wie die Browser, JavaScript als Programmiersprache nutzen. Im Gegensatz zu dem im Browser geladenen Client sind jedoch das HTML und die für das Funktionieren des nativen Clients erforderlichen Komponenten mit der Installation der Anwendung lokal vorhanden. Eine Anwendung, die auf diese Weise funktioniert, ist praktisch identisch mit einer HTML-Seite (beide werden wahrscheinlich sogar von der gleichen Engine gerendert). Es gibt auch Progressive Web Apps (PWA), ein Mechanismus, über den Clients für Webanwendungen für die Offline-Nutzung gepackt werden — beschränkt auf Funktionen, die keine unmittelbare Kommunikation mit dem Server erfordern. In Bezug auf die Möglichkeiten der Anwendung gibt es keinen Unterschied zwischen der Ausführung im Browser und der Kapselung in einer PWA, außer dass der Entwickler bei letzterer mehr Kontrolle darüber hat, was lokal gespeichert wird.
Das Rendern von Schnittstellen aus HTML ist eine so häufig wiederkehrende Tätigkeit, dass die Engine in der Regel eine eigene Softwarekomponente im Betriebssystem ist. Darum kann sie in verschiedene Anwendungen integriert werden, ohne dass sie in das jeweilige Anwendungspaket eingebettet werden muss. In diesem Modell wird auch die Wartung der Rendering Engine an das Betriebssystem delegiert, was Aktualisierungen erleichtert. Es ist sehr wichtig, eine so zentrale Komponente auf dem neuesten Stand zu halten, um mögliche Ausfälle zu vermeiden.
Unabhängig von der Übertragungsmethode laufen in HTML geschriebene Anwendungen auf einer von der Engine geschaffenen Abstraktionsschicht, die als isolierte Ausführungsumgebung fungiert. Insbesondere bei einem Client, der im Browser läuft, stehen der Anwendung nur die vom Browser angebotenen Ressourcen zur Verfügung. Grundlegende Funktionen, wie die Interaktion mit Seitenelementen und die Anforderung von Dateien über HTTP, sind stets verfügbar. Ressourcen, die sensible Informationen enthalten können – wie der Zugriff auf lokale Dateien, den geografischen Standort, die Kamera und das Mikrofon –, erfordern eine ausdrückliche Benutzerautorisierung, bevor die Anwendung sie nutzen kann.
Sprachen eines Webclients
Das zentrale Element eines Webanwendungsclients, der auf dem Server läuft, ist das HTML-Dokument. Neben der strukturierten Darstellung der Oberflächenelemente, die der Browser anzeigt, enthält das HTML-Dokument die Adressen für alle Dateien, die für die korrekte Darstellung und den Betrieb des Clients erforderlich sind.
HTML allein ist nicht vielseitig genug, um komplexere Schnittstellen zu erstellen, und verfügt nicht über allgemeine Programmierfunktionen. Aus diesem Grund wird ein HTML-Dokument, das als Client-Anwendung funktionieren soll, immer von einem oder mehreren CSS- und JavaScript-Sets begleitet.
Das CSS kann als separate Datei oder direkt in der HTML-Datei selbst bereitgestellt werden. Der Hauptzweck von CSS besteht darin, das Aussehen und das Layout der Elemente der HTML-Schnittstelle anzupassen. Obwohl dies nicht unbedingt erforderlich ist, verlangen anspruchsvollere Schnittstellen in der Regel Änderungen der CSS-Eigenschaften der Elemente, um ihren Anforderungen gerecht zu werden.
JavaScript ist eine praktisch unverzichtbare Komponente. In JavaScript geschriebene Prozeduren reagieren auf Ereignisse im Browser. Diese Ereignisse können durch den Benutzer ausgelöst werden oder nicht interaktiv sein. Ohne JavaScript ist ein HTML-Dokument praktisch auf Text und Bilder beschränkt. Die Verwendung von JavaScript in HTML-Dokumenten macht es möglich, die Interaktivität über Hyperlinks und Formulare hinaus zu erweitern, so dass die vom Browser angezeigte Seite wie eine herkömmliche Anwendungsschnittstelle wirkt.
JavaScript ist eine Allzweckprogrammiersprache, die jedoch hauptsächlich in Webanwendungen zum Einsatz kommt. Die Funktionen der Browser-Ausführungsumgebung sind über JavaScript-Schlüsselwörter zugänglich, die in einem Skript verwendet werden, um die gewünschte Operation auszuführen. Der Begriff document
beispielsweise wird im JavaScript-Code verwendet, um sich auf das HTML-Dokument zu beziehen, das mit dem JavaScript-Code verbunden ist. Im Kontext der JavaScript-Sprache ist document
ein globales Objekt mit Eigenschaften und Methoden, über das man Informationen von jedem Element des HTML-Dokuments erhält. Noch wichtiger ist, dass man über das Objekt document
dessen Elemente ändern und sie mit benutzerdefinierten, in JavaScript geschriebenen Aktionen verknüpfen kann.
Eine auf Webtechnologien basierende Client-Anwendung ist plattformunabhängig, da sie auf jedem Gerät mit einem kompatiblen Webbrowser ausgeführt werden kann.
Die Beschränkung auf den Browser bringt jedoch Einschränkungen für Webanwendungen im Vergleich zu nativen Anwendungen mit sich. Die Vermittlung durch den Browser ermöglicht eine Programmierung auf höherer Ebene und erhöht die Sicherheit, aber auch die Verarbeitung und den Speicherverbrauch.
Browser werden permanent weiterentwickelt, um mehr Funktionen bereitzustellen und die Leistung von JavaScript-Anwendungen zu verbessern, aber es gibt inhärente Aspekte bei der Ausführung von Skripten wie JavaScript, die sie im Vergleich zu nativen Programmen für dieselbe Hardware benachteiligen.
Eine Funktion, die die Leistung von im Browser ausgeführten JavaScript-Anwendungen erheblich verbessert, ist WebAssembly. WebAssembly ist eine Art kompiliertes JavaScript, das Quellcode in einer effizienteren, niedrigeren Sprache wie C erzeugt. WebAssembly kann vor allem prozessorintensive Aktivitäten beschleunigen, da es einen Großteil der Übersetzung vermeidet, die der Browser bei der Ausführung eines in herkömmlichem JavaScript geschriebenen Programms vornimmt.
Unabhängig von den Implementierungsdetails der Anwendung müssen der gesamte HTML-Code, CSS-, JavaScript- und Multimediadateien zunächst vom Server abgerufen werden. Der Browser bezieht diese Dateien wie eine Internetseite, d.h. über einer Adresse, auf die er zugreift.
Eine Webseite als Schnittstelle zu einer Webanwendung ist wie ein einfaches HTML-Dokument, fügt aber zusätzliche Interaktionsmöglichkeiten hinzu. Auf herkömmlichen Seiten wird der Benutzer nach dem Anklicken eines Links auf eine andere Seite weitergeleitet. Webanwendungen präsentieren ihre Oberfläche und reagieren auf Benutzerereignisse, ohne neue Seiten im Browserfenster zu laden. Die Änderung dieses Standardverhaltens in HTML-Seiten erfolgt durch JavaScript-Programmierung.
Ein Webmail-Client zeigt zum Beispiel Nachrichten an und wechselt zwischen Nachrichtenordnern, ohne die Seite zu verlassen. Dies ist möglich, weil der Client JavaScript verwendet, um auf Benutzeraktionen zu reagieren und entsprechende Anfragen an den Server zu stellen. Wenn der Benutzer auf den Betreff einer Nachricht im Posteingang klickt, fordert ein mit diesem Ereignis verbundener JavaScript-Code den Inhalt dieser Nachricht vom Server an (über einen entsprechenden API-Aufruf). Sobald der Client die Antwort erhält, zeigt der Browser die Nachricht im entsprechenden Teil der gleichen Seite an. Verschiedene Webmail-Clients haben unterschiedliche Strategien, aber sie nutzen alle dasselbe Prinzip.
Daher muss der Server nicht nur die Dateien, aus denen der Client besteht, dem Browser zur Verfügung stellen, sondern auch in der Lage sein, Anfragen wie die des Webmail-Clients zu bearbeiten, wenn dieser nach dem Inhalt einer bestimmten Nachricht fragt. Für jede Anfrage, die der Client stellen kann, gibt es eine definierte Prozedur auf dem Server, dessen API verschiedene Methoden definieren kann, um festzustellen, auf welche Prozedur sich die Anfrage bezieht. Die gebräuchlichsten Methoden sind:
-
Adressen, über einen Uniform Resource Locator (URL)
-
Felder im HTTP-Header
-
GET/POST-Methoden
-
WebSockets
Je nach Zweck der Anfrage und anderen vom Entwickler berücksichtigten Kriterien kann eine Methode besser geeignet sein als eine andere. In der Regel setzen Webanwendungen auf eine Kombination von Methoden, die jeweils für einen bestimmten Zweck geeignet sind.
Das Representational State Transfer (REST) Paradigma ist für die Kommunikation in Webanwendungen weit verbreitet, da es auf den in HTTP verfügbaren grundlegenden Methoden basiert. Der Header einer HTTP-Anfrage beginnt mit einem Schlüsselwort, das den auszuführenden Grundvorgang definiert: GET
, POST
, PUT
, DELETE
etc., begleitet von einer entsprechenden URL, auf die die Aktion angewendet wird. Wenn die Anwendung spezifischere Vorgänge mit einer detaillierteren Beschreibung des angeforderten Vorgangs erfordert, ist das GraphQL-Protokoll möglicherweise die bessere Wahl.
Anwendungen, die auf dem Client/Server-Modell basieren, unterliegen Instabilitäten bei der Kommunikation. Aus diesem Grund muss die Client-Anwendung stets effiziente Datenübertragungsstrategien nutzen, um ihre Konsistenz zu gewährleisten und die Benutzerfreundlichkeit nicht zu beeinträchtigen.
Die Serverseite
Obwohl er der Hauptakteur in einer Webanwendung ist, ist der Server die passive Seite der Kommunikation — er antwortet nur auf die Anfragen des Clients. Im Webjargon kann sich Server auf den Rechner beziehen, der die Anfragen empfängt, auf das Programm, das speziell HTTP-Anfragen bearbeitet, oder auf das Empfängerskript, das eine Antwort auf die Anfrage erzeugt. Die letztgenannte Definition ist im Zusammenhang mit der Architektur von Webanwendungen die relevanteste, aber sie sind alle eng miteinander verbunden. Obwohl sie nur teilweise in den Aufgabenbereich des Entwicklers eines Anwendungsservers fallen, dürfen Maschine, das Betriebssystem und der HTTP-Server nicht ignoriert werden, da sie für den Betrieb des Anwendungsservers von grundlegender Bedeutung sind und sich häufig überschneiden.
Bearbeitung von Pfaden aus Anfragen
HTTP-Server wie Apache und NGINX erfordern in der Regel spezifische Konfigurationsänderungen, um den Anforderungen der Anwendung gerecht zu werden. Herkömmliche HTTP-Server verknüpfen den in der Anfrage angegebenen Pfad standardmäßig direkt mit einer Datei im lokalen Dateisystem. Wenn der HTTP-Server einer Website seine HTML-Dateien beispielsweise im Verzeichnis /srv/www
aufbewahrt, erhält eine Anfrage mit dem Pfad /de/about.html
den Inhalt der Datei /srv/www/de/about.html
als Antwort, sofern die Datei existiert. Anspruchsvollere Websites und insbesondere Webanwendungen erfordern eine individuelle Behandlung für verschiedene Arten von Anfragen. In diesem Szenario besteht ein Teil der Anwendungsimplementierung darin, die Einstellungen des HTTP-Servers zu ändern, um die Anforderungen der Anwendung zu erfüllen.
Alternativ gibt es Frameworks, die es ermöglichen, die Verwaltung von HTTP-Anfragen und die Implementierung des Anwendungscodes an einem Ort zu integrieren, so dass sich der Entwickler mehr auf den Zweck der Anwendung als auf Plattformdetails konzentrieren kann. In Node.js Express beispielsweise werden das gesamte Request Mapping und die entsprechende Programmierung mit JavaScript realisiert. Da die Programmierung der Clients in der Regel in JavaScript erfolgt, halten es viele Entwickler aus Sicht der Codepflege für eine gute Idee, für Client und Server dieselbe Sprache zu verwenden. Andere Sprachen, die häufig zur Implementierung der Serverseite verwendet werden — entweder in Frameworks oder in traditionellen HTTP-Servern — sind PHP, Python, Ruby, Java und C#.
Datenbankmanagementsysteme
Es liegt im Ermessen des Entwicklungsteams, wie die vom Client empfangenen oder angeforderten Daten auf dem Server gespeichert werden, aber es gibt allgemeine Richtlinien, die für die meisten Fälle gelten. Es ist zweckmäßig, statische Inhalte — Bilder, JavaScript- und CSS-Code, die sich kurzfristig nicht ändern — als herkömmliche Dateien zu speichern, entweder im eigenen Dateisystem des Servers oder verteilt über ein Content Delivery Network (CDN). Andere Arten von Inhalten, wie E-Mail-Nachrichten in einer Webmail-Anwendung, Produktdetails in einer Shopping-Anwendung und Transaktionsprotokolle, werden besser in einem Datenbankmanagementsystem (DBMS) gespeichert.
Der traditionelle Typ von Datenbankmanagementsystemen ist die relationale Datenbank. In ihr definiert der Anwendungsentwickler Datentabellen und das von jeder Tabelle akzeptierte Eingabeformat. Der Satz von Tabellen in der Datenbank enthält alle dynamischen Daten, die von der Anwendung verarbeitet und erzeugt werden. Eine Shopping-App kann zum Beispiel eine Tabelle haben, die einen Eintrag mit den Details zu jedem Produkt im Laden enthält, und eine Tabelle, die die von einem Benutzer gekauften Artikel aufzeichnet. Die Tabelle der gekauften Artikel enthält Verweise auf Einträge in der Produkttabelle, wodurch Beziehungen zwischen den Tabellen entstehen. Dieser Ansatz kann die Speicherung und den Zugriff auf die Daten optimieren und ermöglicht Abfragen in kombinierten Tabellen mit der vom Datenbankmanagementsystem verwendeten Sprache. Die beliebteste relationale Datenbanksprache ist die Structured Query Language (SQL, ausgesprochen: “sequel”), die von den Open-Source-Datenbanken SQLite, MySQL, MariaDB und PostgreSQL verwendet wird.
Eine Alternative zu relationalen Datenbanken ist eine Form der Datenbank, die keine starre Struktur für die Daten erfordert. Diese Datenbanken werden nicht-relationale Datenbanken oder einfach NoSQL genannt. Obwohl sie einige ähnliche Funktionen wie relationale Datenbanken aufweisen können, liegt der Schwerpunkt auf einer höheren Flexibilität bei der Speicherung und dem Zugriff auf gespeicherte Daten, wobei die Aufgabe der Datenverarbeitung der Anwendung selbst obliegt. MongoDB, CouchDB und Redis sind gängige nicht-relationale Datenbankmanagementsysteme.
Pflege der Inhalte
Unabhängig vom gewählten Datenbankmodell müssen die Anwendungen Daten hinzufügen und sie wahrscheinlich während ihrer Lebensdauer aktualisieren. In einigen Anwendungen, wie z.B. Webmail, geben die Benutzer selbst Daten in die Datenbank ein, wenn sie den Client zum Senden und Empfangen von Nachrichten verwenden. In anderen Fällen, wie z.B. bei der Shopping-Anwendung, ist es wichtig, dass die Betreuer der Anwendung die Datenbank ändern können, ohne auf die Programmierung zurückgreifen zu müssen. Viele Unternehmen setzen daher ein Content Management System (CMS) ein, das es auch nicht-technischen Benutzern ermöglicht, die Anwendung zu verwalten. Daher müssen für die meisten Webanwendungen mindestens zwei Arten von Clients implementiert werden: ein nicht privilegierter Client, der von normalen Benutzern verwendet wird, und privilegierte Clients, die speziellen Benutzern zur Pflege und Aktualisierung der von der Anwendung dargestellten Informationen dienen.
Geführte Übungen
-
Welche Programmiersprache wird zusammen mit HTML verwendet, um Clients für Webanwendungen zu erstellen?
-
Wie unterscheidet sich der Aufruf einer Webanwendung von dem einer nativen Anwendung?
-
Wie unterscheidet sich eine Webanwendung von einer nativen Anwendung beim Zugriff auf die lokale Hardware?
-
Nennen Sie eine Eigenschaft eines Webanwendungsclients, die ihn von einer gewöhnlichen Webseite unterscheidet.
Offene Übungen
-
Welche Funktion bieten moderne Browser, um die schlechte Leistung von CPU-intensiven Webanwendungsclients auszugleichen?
-
Wenn eine Webanwendung das REST-Paradigma für die Client/Server-Kommunikation verwendet, welche HTTP-Methode sollte verwendet werden, wenn der Client den Server auffordert, eine bestimmte Ressource zu löschen?
-
Nennen Sie fünf Server-Skriptsprachen, die der Apache-HTTP-Server unterstützt.
-
Warum gelten nicht-relationale Datenbanken als einfacher zu warten und zu aktualisieren als relationale Datenbanken?
Zusammenfassung
In dieser Lektion werden die Konzepte und Standards der Webentwicklungstechnologie und -architektur behandelt. Das Prinzip ist einfach: Der Webbrowser führt die Client-Anwendung aus, die mit der Kernanwendung auf dem Server kommuniziert. Obwohl das Prinzip einfach ist, müssen Webanwendungen viele Technologien kombinieren, um das Prinzip des Client/Server-Computings über das Web zu übernehmen. In dieser Lektion werden die folgenden Konzepte behandelt:
-
Die Rolle von Webbrowsern und Webservern.
-
Gängige Webentwicklungstechnologien und -standards.
-
Wie Webclients mit dem Server kommunizieren.
-
Arten von Webservern und Serverdatenbanken.
Lösungen zu den geführten Übungen
-
Welche Programmiersprache wird zusammen mit HTML verwendet, um Clients für Webanwendungen zu erstellen?
JavaScript
-
Wie unterscheidet sich der Aufruf einer Webanwendung von dem einer nativen Anwendung?
Eine Webanwendung wird nicht installiert. Stattdessen laufen Teile auf dem Server, und die Client-Schnittstelle läuft in einem gewöhnlichen Webbrowser.
-
Wie unterscheidet sich eine Webanwendung von einer nativen Anwendung beim Zugriff auf die lokale Hardware?
Alle Zugriffe auf lokale Ressourcen wie Speicher, Kameras oder Mikrofone werden über den Browser vermittelt und erfordern eine ausdrückliche Benutzerautorisierung.
-
Nennen Sie eine Eigenschaft eines Webanwendungsclients, die ihn von einer gewöhnlichen Webseite unterscheidet.
Die Interaktion mit herkömmlichen Webseiten beschränkt sich im Wesentlichen auf Hyperlinks und das Absenden von Formularen, während Webanwendungsclients eher einer herkömmlichen Anwendungsschnittstelle entsprechen.
Lösungen zu den offenen Übungen
-
Welche Funktion bieten moderne Browser, um die schlechte Leistung von CPU-intensiven Webanwendungsclients auszugleichen?
Die Entwickler können WebAssembly verwenden, um die CPU-intensiven Teile der Client-Anwendung zu implementieren. WebAssembly-Code ist in der Regel leistungsfähiger als herkömmliches JavaScript, da er weniger Übersetzungen von Anweisungen erfordert.
-
Wenn eine Webanwendung das REST-Paradigma für die Client/Server-Kommunikation verwendet, welche HTTP-Methode sollte verwendet werden, wenn der Client den Server auffordert, eine bestimmte Ressource zu löschen?
REST stützt sich auf Standard-HTTP-Methoden und sollte daher in diesem Fall die Standardmethode
DELETE
verwenden. -
Nennen Sie fünf Server-Skriptsprachen, die der Apache-HTTP-Server unterstützt.
PHP, Go, Perl, Python und Ruby.
-
Warum gelten nicht-relationale Datenbanken als einfacher zu warten und zu aktualisieren als relationale Datenbanken?
Im Gegensatz zu relationalen Datenbanken müssen Daten bei nicht-relationalen Datenbanken nicht in starre, vordefinierte Strukturen passen, so dass es einfacher ist, Änderungen an den Datenstrukturen vorzunehmen, ohne dass sich dies auf bestehende Daten auswirkt.