David gegen Goliath - Node.js vs. PHP. Serverseitige Programmierung im Vergleich


Bachelorarbeit, 2014

41 Seiten, Note: 1,0


Leseprobe


Inhaltsverzeichnis

Erklärung

Kurzfassung

Abstract

1 Einleitung
1.1 Motivation
1.2 Ziele und Hypothese
1.3 Aufbau der Arbeit

2 Grundlagen und Begriffsbestimmungen
2.1 Serverseitige Programmierung
2.1.1 PHP
2.1.2 Node.js
2.1.3 Klassenbasierte, objektorientierte Programmierung
2.1.4 Prototypenbasierte, objektorientierte Programmierung
2.2 Datenbanksysteme
2.3 Hosting

3 PHP und Node.js im Vergleich
3.1 Technische Voraussetzungen
3.2 Synchrone vs. asynchrone Ein- und Ausgabemodelle
3.3 Klassenbasierte vs. prototypenbasierte OOP
3.4 Zusammenfassung des Vergleichs
3.5 Überprüfung der Hypothese

4 Entwicklung einer Entscheidungshilfe
4.1 Ziel
4.2 Herangehensweise
4.3 Der Entscheidungsbaum

5 Zukunftsausblick
5.1 Non-blocking I/O Modelle in PHP
5.2 Golang und weitere Konkurrenten

Literaturverzeichnis

Erklärung

Ich erkläre eidesstattlich, dass ich die vorliegende Arbeit selbstständig und ohne fremde Hilfe verfasst, andere als die angegebenen Quellen nicht benutzt und die den benutzten Quellen entnommenen Stellen als solche gekennzeichnet habe. Die Arbeit wurde bisher in gleicher oder ähnlicher Form keiner anderen Prüfungsbehörde vorgelegt.

Datum, Unterschrift

Kurzfassung

Am Markt der serverseitigen Web Technologien gibt es seit 2009 einen neuen Mitstreiter. Node.js, ein Framework für serverseitige Verwendung von JavaScript, konkurriert dabei direkt mit dem Marktführer PHP. Während PHP eine serverseitige Programmiersprache ist, ist Node.js vielmehr eine Serverumgebung, die JavaScript als Skriptsprache heranzieht. JavaScript ist eine eventgesteuerte Programmiersprache, die prototypenbasierte, objektorientierte Programmierung ermöglicht. Dadurch lassen sich asynchrone Ein- und Ausgabemodelle umsetzen, die bei vielen gleichzeitigen Verbindungen wesentlich effizienter arbeiten als synchrone Modelle. Durch die nicht blockierenden Sockets fallen Wartezeiten weg, was dem Server ermöglicht, mit einem Vielfachen an zeitgleichen Anfragen besser umgehen zu können. Durch die eventgesteuerte Ausrichtung von JavaScript lassen sich Push-Features sehr einfach umsetzen. PHP hingegen ermöglicht klassenbasierte, objektorientierte Programmierung. Da in PHP keine Mehrfachvererbung erlaubt ist, fällt in Programmen, die mit PHP entwickelt werden, das Risiko des Diamond Problems weg. Da PHP weniger Zugriffsrechte am Server benötigt, ist es zum heutigen Zeitpunkt einfacher, einen geeigneten Host für PHP Applikationen zu finden, als es für Node.js der Fall ist. Zusätzlich müssen sich Entwickler mit PHP nicht um die Aufgaben des Servers kümmern. Um herauszufinden, welche Technologie für ein Web Projekt geeigneter ist, wurde ein Entscheidungsbaum entwickelt, der in der Anfangsphase eines Projektes für die Technologieentscheidung herangezogen werden kann.

Abstract

In 2009, a new competitor entered the market of server side web technologies. Node.js, a framework for server side usage of JavaScript, is competing directly with PHP - the market leader. While PHP is a server side programming language, Node.js acts rather as a server environment using JavaScript as a scripting language, than just being a programming language itself. JavaScript is an event driven programming language supporting prototype-based, object-oriented programming. Thus, since there are no queue times due to non-blocking sockets, asynchronous I/O models, which handle many concurrent connections much more efficiently than synchronous models do, can be implemented easily. Push- Features may easily be implemented due to the event driven paradigm provided by JavaScript. In contrast, PHP supports class based, object-oriented programming. Since PHP does not support multiple inheritance, the diamond problem won’t appear in PHP-implemented programs. PHP requires fewer access rights on a web server. This is why it’s easier to find an appropriate host for PHP applications than for applications running on Node.js nowadays. Additionally, PHP developers do not have to care for tasks concerning the server. To be able to estimate the better technology for a web project at its very beginning, a decision tree was invented to compare certain criteria of web projects and suggest to use either Node.js or PHP.

Abbildungsverzeichnis

Abbildung 1 - Request Response Verfahren

Abbildung 2 - Usage of server-side programming languages for websites

Abbildung 3 - "Hello World!" in Node REPL

Abbildung 4 - "Hello World!" mit Node und Browser

Abbildung 5 - Ergebnis aus Codebeispiel 5

Abbildung 6 - Ergebnis aus Codebeispiel 6 in der Konsole

Abbildung 7 - Synchrone und Asynchrone Verarbeitung

Abbildung 8 - Ergebnis aus Codebeispiel 7

Abbildung 9 - Ergebnis aus Codebeispiel 8

Abbildung 10 - Entscheidungsbaum

1 Einleitung

Im Folgenden werden die Motivation und Ziele der vorliegenden Arbeit, eine Hypothese, sowie ein Überblick über den Aufbau der Arbeit gegeben.

1.1 Motivation

In der Webprogrammierung unterscheidet man zwischen „server side“ und „client side“ Programmierung. Während es bei der klientenseitigen Webprogrammierung überwiegend um Interaktionsmöglichkeiten geht, behandelt die serverseitige Webprogrammierung vorwiegend die Bereitstellung von Daten, die meistens auf einer Datenbank liegen (Puntambekar, 2009). Zur serverseitigen Programmierung eignen sich mehrere Programmiersprachen. Dabei hat sich in den letzten 20 Jahren PHP deutlich durchsetzen können. Neben PHP gibt es weitere serverseitige Programmiersprachen wie ASP1, Java2, Perl3, Python4 und viele andere. Die meisten dieser Technologien teilen die Idee, dass ein Server etwas ist, das Anfragen empfängt und Antworten sequentiell ausfertigt (Dahl, zitiert nach Hughes-Croucher und Wilson, 2012). Diese Idee lässt einen Server stets reagieren, aber nicht agieren. Für moderne Webanwendungen sollen Server aber mitunter auch Daten „pushen“, also initiativ aussenden, um beispielsweise Benachrichtigungen ohne Verzögerung zu übermitteln. Wegen der weltweit zunehmenden Vernetzung müssen Server zudem mit einer Vielzahl an Klienten gleichzeitig kommunizieren, ohne diese dabei lange auf ihre Antworten warten zu lassen.

JavaScript, welches bisher Bekanntheit als klientenseitige Programmiersprache erlangte, auch serverseitig zu verwenden, ist ein Ansatz, der diesen Problemen entgegentreten soll (Dahl, zitiert nach Hughes-Croucher und Wilson, 2012). JavaScript ist eine eventbasierende Programmiersprache und kann daher hervorragend mit solchen Anforderungen umgehen. Node.js5 macht sich diese Eigenschaften von JavaScript zu Nutze und stellt eine umfangreiche Bibliothek für moderne, leistungsfähige Webentwicklung dar. Exzellente Skalierbarkeit und einfach umzusetzende Push-Aktionen sind das Ergebnis. Das vergleichsweise junge Framework ist somit ein vielversprechender Trend, der die serverseitige Webentwicklung maßgeblich verändern und somit PHP große Konkurrenz machen kann.

1.2 Ziele und Hypothese

Diese Arbeit vergleicht PHP und Node.js in unterschiedlichen Kategorien. Ziel der Arbeit ist es, eine Entscheidungshilfe zur Wahl des optimalen Technologiesetups für einzelne Webprojekte aufgrund der gewonnenen Erkenntnisse zu erstellen. Dazu werden die jeweiligen Stärken und Schwächen von PHP und Node.js erarbeitet und unterschiedlichen Kriterien von Webprojekten zugeordnet. Diese Ergebnisse werden dann in einem Entscheidungsbaum verarbeitet, welches eine rasche und einfache Entscheidungshilfe für Webentwickler darstellen soll. Ein weiteres Ziel ist die Überprüfung der nachfolgenden Hypothese.

„ Es besteht die Annahme, dass sich Node.js für interaktive Anwendungen im Web 2.0 mit vielen Besuchern und vielen gleichzeitigen Datenbankanfragen besser eignet als PHP. Aufgrund der höheren Kosten und der geringeren Reife von Node.js wird für kleinere, weniger interaktive und nicht kommerzielle Webprojekten PHP zu bevorzugen sein. “

1.3 Aufbau der Arbeit

Abschnitt 2 bietet eine Einführung in die Grundlagen und Begriffsbestimmungen, die zum Verständnis der weiteren Abschnitte vorausgesetzt werden. Im dritten Abschnitt werden PHP und Node.js in mehreren Kategorien verglichen. Im vierten Abschnitt wird mit den Ergebnissen des Vergleiches eine Entscheidungshilfe in Form eines Entscheidungsbaumes erstellt. Dabei werden das Ziel, die Herangehensweise sowie das Ergebnis ausführlich beschrieben und die Hypothese überprüft. Der fünfte Abschnitt behandelt die Zukunftsaussichten der Thematik. Dabei werden Punkte für weiterführende Arbeiten aufgezeigt.

2 Grundlagen und Begriffsbestimmungen

Das folgende Kapitel dient zur Einführung in die Grundlagen der Thematik sowie zur Erläuterung verwendeter Begriffe. Diese dienen zum besseren Verständnis der behandelten Themen. Hierin gesetzte Schwerpunkte werden in den weiteren Kapiteln nicht näher erklärt.

2.1 Serverseitige Programmierung

Der Großteil aller bestehenden Webanwendungen wurde mit PHP als serverseitiger Programmiersprache entwickelt (Siehe Abbildung 1 - Request Response Verfahren). Nach aktuellem Standard wird dabei häufig nach dem „Request-Response“ Verfahren vorgegangen: Ein Klient, z.B. ein Webbrowser, sendet eine Anfrage (Request) an einen Webserver. Der Server verarbeitet die Anfrage, führt die nötigen Interaktionen mit einer Datenbank aus (Löschen, Hinzufügen oder Abfragen von Daten) und liefert dem Klienten schließlich eine Antwort (Response). Der Klient muss diese Antwort nun noch in eine für den Benutzer lesbare Form bringen (Puntambekar, 2009).

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 1 - Request Response Verfahren

Quelle: http://p2gohil.blogspot.co.at/2012/07/aspnet-request-processed-by-iis.html [23. Mai 2014]

Die Serverseitige Programmierung beschäftigt sich demnach mit allen Operationen, die der Server ausführen muss, um einem Klienten die gewünschten Antworten (Daten) zu liefern. Dabei gibt es zwischen den einzelnen Programmiersprachen sowohl Unterschiede als auch Gemeinsamkeiten. Eine Gemeinsamkeit der im Serverbereich meistverwendeten Programmiersprachen sind standardmäßig blockierende Ein- und Ausgabevorgänge, die Verbindungen bis zum Erhalt der angefragten Daten oder bis zu einer Zeitüberschreitung aufrecht halten und für diesen Zeitraum blockieren (Dahl, zitiert nach Hughes-Croucher und Wilson, 2012). Auch der Marktführer PHP arbeitet auf diese Weise.

2.1.1 PHP

PHP ist eine serverseitige Programmiersprache, die speziell für die Web- Entwicklung ausgelegt ist. Auf der eigenen Homepage, www.php.net, wird sie wie folgt beschrieben: „ PHP is a popular general-purpose scripting language that is especially suited to web development.“ (PHP.net, 2014). Die Programmiersprache erschien erstmalig 1995 und hat sich seither einen Namen gemacht. Nach w3techs Technologiestatistik in der Kategorie „Usage of server-side programming languages for websites“ führt PHP das Feld mit 81.9% deutlich an (Siehe Abbildung 2 - Usage of server-side programming languages for websites) (W3techs, 2014).

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 2 - Usage of server-side programming languages for websites

PHP ist nach seiner langen Entwicklung heute bereits in der Version 5.5.11 erhältlich. Die einfache HTML-Einbindung6, der ausgereifte Umgang mit Datenbanken und die langjährige Entwicklung der Sprache tragen zu ihrer Marktführerstellung bei.

Den Einstieg in eine Programmiersprache lernt man meistens mit einem einfachen „Hello World!“ Programm. Dabei durchlaufen die Lernenden die nötigen Schritte, um ein Programm lauffähig zu machen und bekommen einen ersten Einblick in die Syntax der Sprache. Aus diesem Grund wird folgend ein „Hello World!“ Programm mittels PHP dargestellt.

In PHP genügt es bereits, eine neue PHP-Datei mit der Dateiendung „.php“ am Server anzulegen und in diese nur „Hello World!“ zu schreiben. Die Datei kann dann mit einem Browser über den jeweiligen Server abgerufen werden.

Abbildung in dieser Leseprobe nicht enthalten

Der Code aus Codebeispiel 1 wird als HTML-Code interpretiert und als HTMLTextknoten ausgegeben. Das Ergebnisdokument ist dabei aber nicht valide, da die HTML-spezifischen Elemente fehlen.

Abbildung in dieser Leseprobe nicht enthalten

In Codebeispiel 2 wird bereits ein gültiger HTML-Code ausgegeben, jedoch unterscheidet sich das Dokument in der Schreibweise nicht von einem HTML- Dokument. Jene Programmierer, die bereits mit HTML umgehen können, finden einen leichteren Einstieg in PHP - die Ausgabe erfolgt nämlich meistens in HTML.

Abbildung in dieser Leseprobe nicht enthalten

Codebeispiel 3 - „Hello World!“ in PHP: Schritt 3

Erst mit den Zeichenfolgen „<?php“ und „?>“ wird tatsächlicher PHP-Code maskiert. Jene Codestücke, die sich innerhalb dieser Maskierung befinden, müssen den syntaktischen Regeln von PHP entsprechen. In Codebeispiel 3 wird innerhalb dieser Maskierung (Zeile 6) die „echo“ Funktion aufgerufen und ein String mit dem Wert „<p>Hello World!</p>“ als Parameter übergeben. Die echo Funktion gibt dabei den übergebenen Parameter an der entsprechenden Stelle des HTML-Dokumentes aus. Danach ist ein Semikolon platziert, um das Ende eines Funktionsaufrufes anzuzeigen. Die Maskierung wird mit „?>“ wieder geschlossen, sodass danach wieder reiner HTML-Code eingegeben werden kann.

Ein „Hello World!“ Programm ist sehr simpel. Unterschiede zwischen Programmiersprachen werden jedoch erst bei komplexeren Anwendungen bemerkbar. Äußerst erfolgreiche Webapplikationen, die von sehr vielen Benutzern gleichzeitig verwendet werden und daher sehr viele Datentransaktionen abwickeln müssen, stellen hohe technische Anforderungen. Hier kann PHP derzeit an seine Grenzen stoßen, weshalb Entwickler seit einigen Jahren nach Alternativen suchen. Ryan Dahl hat 2009 eine vielversprechende Alternative entwickelt: Node.js, auf das im Folgenden näher eingegangen wird.

2.1.2 Node.js

JavaScript, eine prototypenbasierte Skriptsprache (siehe Abschnitt 2.1.4 - Prototypenbasierte, objektorientierte Programmierung), wird hauptsächlich in der klientenseitigen Programmierung verwendet. Der Hauptanwendungskontext ist im Bereich dynamische Benutzeroberflächen, wie bspw. bei Formularen (Flanagan, 2007). Durch das Framework „Node.js“ wird es nun möglich, JavaScript auch für den Webserver, also als serverseitige Programmiersprache, zu verwenden.

„ Node.js ist vieles, vor allem aber eine Umgebung, die es ermöglicht, JavaScript auß erhalb des Webbrowsers laufen zu lassen. “ (Hughes-Croucher und Wilson, 2012, S. 1). Dadurch ergeben sich einige Vorteile für die Entwicklung, wie z.B. die erhöhte Wiederverwendbarkeit von Code im Front- und Backend. Da die Sprachgrammatik für Server und Klient dieselbe ist, können Snippets, das sind Codestücke, problemlos auf beiden Seiten verwendet werden. Dazu kommt auch die kognitive Erleichterung, da man nur in einer Sprache arbeiten muss und immer dieselbe Syntax einzuhalten hat. Maßgeblich für den Erfolg von Node.js sind aber die technischen Vorteile.

„ Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices. “ (Node, 2014).

Das Framework macht sich die Vorteile die daraus entstehen, dass JavaScript eine Event-gesteuerte Sprache ist, zu nutzen. Zusätzlich wird in Node.js mit nichtblockierenden Sockets7 gearbeitet. Durch diese Eigenschaften lassen sich unter anderem hoch skalierbare Server und Push-Features stabil programmieren. (Hughes-Croucher und Wilson, 2012).

Ryan Dahl, der Erfinder von Node.js, hat das Potential von Google Chromes 2008 eingeführter JavaScript-Engine „V8“ genutzt, um Node.js mit der nötigen Performance auszustatten.

„ Node ist ein Wrapper für die hochperformante V8-JavaScript-Runtime des Google-Chrome-Browsers. Node passt V8 so an, dass es auß erhalb eines Browsers besser arbeiten kann. Dazu stellt es vor allem zus ä tzliche APIs bereit, die für bestimmte Anwendungsf ä lle optimiert sind. “ (Hughes-Croucher und Wilson, 2012).

Node.js konnte sich bisher erst einen geringeren Marktanteil sichern. Vom Hauptkonkurrenten, PHP, könnten durch die mitgebrachten technologischen Vorteile aber vielleicht Marktanteile gewonnen werden. Node.js befriedigt ein technologisches Nischenbedürfnis und erlebt deshalb einen derzeit so rapiden Anstieg an Nachfrage und Unterstützung. Ein Hindernis für die Akzeptanz der Technologie bei den Entwicklern könnte der Einstieg in Node sein, der im Vergleich zu PHP etwas schwieriger sein kann. Das nachfolgende „Hello World!“ Programm für Node.js soll das veranschaulichen.

PHP Entwickler legen in der Regel ihre PHP-Dateien an, laden diese in einer gewünschten Ordnerstruktur auf den Server und führen sie unkompliziert mit einem Webbrowser8 aus. In Node ist der Einstieg etwas komplexer. Node kann auf mehrere Arten bedient werden. Eine Möglichkeit ist es, eine JavaScript-Datei mit der Dateiendung „.js“ anzulegen und diese über die Kommandozeile mit dem Befehl „node“ und dem entsprechenden Pfad auszuführen. Eine weitere Möglichkeit ist, die von Node.js bereitgestellte, interaktive Programmierumgebung „Node REPL“ („Read-Evaluate-Print-Loop“, Hughes-Croucher und Wilson, 2012) aufzurufen und den JavaScript Code direkt darin zu entwickeln und zu testen. Dieses Vorgehen ist für PHP-Entwickler etwas ungewohnt und kann zu Verwirrungen führen. „ An Node versteht man zu Beginn h ä ufig nicht, dass es sich nicht nur um einen Server handelt, sondern auch um eine Laufzeitumgebung - wie Perl, Python oder Ruby. “ (Hughes-Croucher und Wilson, 2012).

Der Vorteil der ersten genannten Variante ist, dass man seine gewohnte Entwicklungsumgebung benutzen kann. Der Vorteil der zweiten genannten Variante ist, dass man das Ergebnis oder entsprechende Fehlermeldungen gleich direkt erhält (Siehe Abbildung 3 - "Hello World!" in Node REPL).

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 3 - "Hello World!" in Node REPL

Die Funktion „log“ des Objektes „console“ kann - ähnlich wie „echo“ in PHP - einen übergebenen String Parameter ausgeben (Siehe Abbildung 3 - "Hello World!" in Node REPL). Das Ergebnis kann jedoch nur in der Konsole, aber nicht mit in einem HTML-Dokument betrachtet werden.

Damit die Ergebnisse auch über einen Browser abrufbar sind, muss zuerst ein HTTP-Server9 gestartet werden. „ Anders als bei anderen Sprachen wie PHP, die innerhalb eines Servers laufen (zum Beispiel im Apache10 ), agiert Node selbst als Webserver. Allerdings müssen wir ihn dazu auch selbst erzeugen. “ (HughesCroucher und Wilson, 2012).

Abbildung in dieser Leseprobe nicht enthalten

In Codebeispiel 4 wird in Zeile 1 eine HTTP-Bibliothek geladen und der Variable „http“ zugewiesen. In Zeile 2 wird auf dieser Variable die Funktion „createServer()“ aufgerufen und als Parameter eine anonyme Funktion übergeben. In Zeile 5 wird zusätzlich ein Event Listener11 für das „request“-Event vergeben, der die vorhin übergebene anonyme Funktion im gegebenen Fall anstoßen soll. Die in Zeile 2 übergebenen Parameter „req“ und „res“ stehen für „Request“ und „Response“. Die Funktion „writeHead()“ erhält den Wert 200 (das steht für den HTTP-Status-Code „200 OK“) sowie den Inhaltstypen „text/plain“. Die Funktion „end()“ führt gleich zwei Arbeiten durch: Zum einen wird mit dem als Parameter übergebenen String-Wert ein HTML-Element vom Typ „Body“ erstellt und an den Klienten gesendet, welches den String-Wert als Textknoten enthält. Zum anderen wird die HTTP-Verbindung beendet. Das Ergebnis ist ein gültiges HTML-Dokument mit der gewünschten Ausgabe (Siehe Abbildung 4 - "Hello World!" mit Node und Browser)

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 4 - "Hello World!" mit Node und Browser

Ein „Hello World!“ Programm zu schreiben scheint mit PHP wesentlich unkomplizierter zu sein, als mit Node. Das Erstellen eines Servers fällt bei PHP weg, da PHP meist bereits in einem Server wie z.B. Apache läuft. Für den Einstieg in ein neues Framework stellt dies eine kleine Erschwernis dar. Neben diesen Punkten spielen aber auch andere Werte, wie etwa die Menge an verfügbaren Ressourcen oder die Größe der Nutzergemeinde, eine Rolle. Sehr wesentlich ist aber auch der Aufbau der Programmiersprache. PHP ist eine objektorientierte Programmiersprache, JavaScript eine prototypenbasierte. Entwickler, die in den jeweiligen Bereichen bereits Erfahrungen sammeln konnten, können gewohnte Arbeitsweisen somit beibehalten und finden eventuell einen schnelleren Einstieg in die neue Sprache.

2.1.3 Klassenbasierte, objektorientierte

Programmierung

Die Idee hinter objektorientierter Programmierung (OOP) ist, alle Bestandteile eines Objektes in eine logische Struktur zu bringen und zusammenzufassen. Bei klassenbasierter OOP versucht man Objekte in übergreifende Klassen zu gliedern und Daten zu kapseln. Kapseln bedeutet, dass man die Daten vor ungewollten Manipulationen weitgehend schützt. Um das zu erreichen, werden direkte Zugriffe auf Daten unterbunden und eigene Zugriffsfunktionen zur Verfügung gestellt. Neben den gekapselten Daten verfügen Objekte auch über Methoden. Unter einer Methode versteht man einen Programmabschnitt, der einmal ausprogrammiert wird, und dann für alle Objekte einer Klasse zur Verfügung steht.

[...]


1.NET-Fähige Programmiersprache von Microsoft. Mehr Information unter: http://www.asp.net

2 Veröffentlicht von Oracle. Mehr Information unter: http://www.oracle.com/technetwork/java/

3 Mehr Information unter: http://www.perl.org

4 Mehr Information unter: https://www.python.org

5 Mehr Information unter: http://www.nodejs.org

6 HTML (HyperText Markup Language) ist eine textbasierte, beschreibende Sprache, die zur Strukturierung von Hypertext verwendet wird. Informationen, die durch Querverweise (Hyperlinks) zwischen Hypertext-Knoten verknüpft sind, bezeichnet mal als „Hypertext“ (Weiss, 2011).

7Ein Socket ist eine Schnittstelle auf einem Host, kontrolliert durch das Betriebssystem,über das ein Anwendungsprozess sowohl Daten an einen anderen Prozess senden als auch von einem anderen Prozess empfangen kann. Ein Socket ist eine Art ‚ Tür ‘ zum Computernetzwerk. “ (CCS, 2014).

8 Ein Webbrowser (kurz: „Browser“) ist ein Programm zur Darstellung von Webinhalten. Das sind meist über Hyperlinks miteinander verbundene HTML Dokumente.

9 HTTP (Hypertext Transfer Protocoll) dient zur Datenübertragung in einem Netzwerk. Ein http Server verarbeitet Anfragen eines Klienten sowie deren Antworten über das HTT-Protokoll.

10 Mehr Information unter: http://httpd.apache.org

11 Ein Event Listener wartet auf das Eintreffen eines definierten Ereignisses. Zum Zeitpunkt des Eintreffens stößt dieser Listener einen definierten Vorgang an

Ende der Leseprobe aus 41 Seiten

Details

Titel
David gegen Goliath - Node.js vs. PHP. Serverseitige Programmierung im Vergleich
Hochschule
Fachhochschule Oberösterreich Standort Hagenberg
Note
1,0
Autor
Jahr
2014
Seiten
41
Katalognummer
V276829
ISBN (eBook)
9783656701767
ISBN (Buch)
9783656702658
Dateigröße
772 KB
Sprache
Deutsch
Schlagworte
node.js, node, php, serverseitige, programmierung, web, vs, prototypenbasiert, non-blocking, I/O, javascript, serverseitig, hosting
Arbeit zitieren
Matthias Neuwersch (Autor:in), 2014, David gegen Goliath - Node.js vs. PHP. Serverseitige Programmierung im Vergleich, München, GRIN Verlag, https://www.grin.com/document/276829

Kommentare

  • Noch keine Kommentare.
Blick ins Buch
Titel: David gegen Goliath - Node.js vs. PHP. Serverseitige Programmierung im Vergleich



Ihre Arbeit hochladen

Ihre Hausarbeit / Abschlussarbeit:

- Publikation als eBook und Buch
- Hohes Honorar auf die Verkäufe
- Für Sie komplett kostenlos – mit ISBN
- Es dauert nur 5 Minuten
- Jede Arbeit findet Leser

Kostenlos Autor werden