Was ist der Unterschied zwischen clientseitiger und serverseitiger Programmierung?

Lesezeit: 6 Minuten

1646902510 129 Was ist der Unterschied zwischen clientseitiger und serverseitiger Programmierung
verzeihen

Ich habe diesen Code:

<script type="text/javascript">
    var foo = 'bar';
    <?php
        file_put_contents('foo.txt', ' + foo + ');
    ?>

    var baz = <?php echo 42; ?>;
    alert(baz);
</script>

Warum schreibt dieser nicht “bar” in meine Textdatei, sondern alarmiert “42”?


NB: Frühere Überarbeitungen dieser Frage betrafen explizit PHP auf dem Server und JavaScript auf dem Client. Die wesentliche Natur des Problems und der Lösungen ist die gleiche für irgendein Sprachpaar, wenn eine auf dem Client und die andere auf dem Server läuft (selbst wenn sie dieselbe Sprache sind). Bitte berücksichtigen Sie dies, wenn Sie Antworten zu bestimmten Sprachen sehen.

1646902510 129 Was ist der Unterschied zwischen clientseitiger und serverseitiger Programmierung
verzeihen

Ihr Code ist in zwei völlig separate Teile aufgeteilt, die serverseitig und das Kundenseite.

                    |
               ---------->
              HTTP request
                    |
+--------------+    |    +--------------+
|              |    |    |              |
|    browser   |    |    |  web  server |
| (JavaScript) |    |    |  (PHP etc.)  |
|              |    |    |              |
+--------------+    |    +--------------+
                    |
  client side       |      server side
                    |
               <----------
          HTML, CSS, JavaScript
                    |

Die beiden Seiten kommunizieren über HTTP-Anforderungen und -Antworten. PHP wird auf dem Server ausgeführt und gibt HTML- und möglicherweise JavaScript-Code aus, der als Antwort an den Client gesendet wird, wo das HTML interpretiert und das JavaScript ausgeführt wird. Sobald PHP die Antwort ausgegeben hat, endet das Skript und auf dem Server passiert nichts, bis eine neue HTTP-Anfrage eintrifft.

Der Beispielcode wird wie folgt ausgeführt:

<script type="text/javascript">
    var foo = 'bar';
    <?php
        file_put_contents('foo.txt', ' + foo + ');
    ?>

    var baz = <?php echo 42; ?>;
    alert(baz);
</script>

Schritt 1, PHP führt den gesamten Code dazwischen aus <?php ?> Stichworte. Das Ergebnis ist folgendes:

<script type="text/javascript">
    var foo = 'bar';

    var baz = 42;
    alert(baz);
</script>

Die file_put_contents Aufruf hat nichts ergeben, es hat nur ” + foo + ” in eine Datei geschrieben. Die <?php echo 42; ?> Der Aufruf führte zur Ausgabe “42”, die sich jetzt an der Stelle befindet, an der sich früher dieser Code befand.

Dieser resultierende HTML/JavaScript-Code wird nun an den Client gesendet und dort ausgewertet. Die alert Anruf funktioniert, während die foo Variable wird nirgendwo verwendet.

Der gesamte PHP-Code wird auf dem Server ausgeführt, bevor der Client überhaupt mit der Ausführung von JavaScript beginnt. In der Antwort ist kein PHP-Code mehr vorhanden, mit dem JavaScript interagieren könnte.

Um PHP-Code aufzurufen, muss der Client eine neue HTTP-Anforderung an den Server senden. Dies kann mit einer von drei möglichen Methoden geschehen:

  1. Ein Link, der den Browser veranlasst, eine neue Seite zu laden.
  2. Eine Formularübermittlung, die Daten an den Server übermittelt und eine neue Seite lädt.
  3. Ein AJAX request, eine Javascript-Technik, um eine normale HTTP-Anfrage an den Server zu stellen (wie 1. und 2. will), aber ohne die aktuelle Seite zu verlassen.

Hier ist eine Frage, in der diese Methode ausführlicher beschrieben wird

Sie können auch JavaScript verwenden, um den Browser dazu zu bringen, eine neue Seite zu öffnen window.location oder senden Sie ein Formular ab, indem Sie die Möglichkeiten 1. und 2. nachahmen.

  • Sie können die zweite Seite auch mit öffnen window.open oder laden Sie eine Seite mit einem Iframe.

    – jkubisch

    25. April 2016 um 7:51 Uhr


  • Es könnte sich lohnen, WebSockets zur Liste der Kommunikationsmethoden hinzuzufügen.

    – QUentin

    19. Dezember 2016 um 8:45 Uhr

  • Was ist, wenn wir sagen, Drop-down-Werte werden über jquery aktualisiert? Wenn der Benutzer Schritt 2 ausführt. Eine Formularübermittlung, die Daten an den Server sendet und eine neue Seite lädt, über die Schaltfläche „Senden“, könnten die aktualisierten JQuery-Werte an einen Controller in PHP übergeben werden? Oder wären sie für PHP nicht sichtbar, da sie über jquery zum Dom hinzugefügt wurden? @decez

    – FabricioG

    2. Oktober 2018 um 22:33 Uhr

  • @Fabricio Eine HTTP-Anforderung wird aus der erstellt <form> Daten und an den Server gesendet. Sie können Formulare mit Javascript manipulieren, damit sie unterschiedliche Daten enthalten. Ja, diese Daten sind Teil der resultierenden HTTP-Anforderung, wenn sie beim Absenden ordnungsgemäß Teil des Formulars sind. Dabei spielt es keine Rolle, ob es im Original-HTML war oder per Javascript nachträglich hinzugefügt wurde.

    – verzeihen

    3. Oktober 2018 um 7:30 Uhr

1646902511 465 Was ist der Unterschied zwischen clientseitiger und serverseitiger Programmierung
NullPoièteя

Um festzustellen warum PHP Code funktioniert nicht JavaScript Code müssen wir verstehen, was Kundenseite und serverseitig Sprachen sind und wie sie funktionieren.

Serverseitige Sprachen (PHP etc.): Sie rufen Aufzeichnungen aus Datenbanken ab, behalten den Zustand über den Staatenlosen bei HTTP Verbindung und tun viele Dinge, die Sicherheit erfordern. Sie befinden sich auf dem Server, der Quellcode dieser Programme wird dem Benutzer niemals offengelegt.

Bild von wikipedia_http://en.wikipedia.org/wiki/File:Scheme_dynamic_page_en.svg
Bildattr

Sie können also leicht erkennen, dass serverseitige Sprachen HTTP-Anforderungen verarbeiten und verarbeiten, und wie @deceze sagte: PHP wird auf dem Server ausgeführt und gibt etwas HTML und möglicherweise JavaScript-Code aus, der als Antwort an den Client gesendet wird, wo das HTML interpretiert und JavaScript ausgeführt wird.

Andererseits, Clientseitige Sprachen (wie JavaScript) befinden sich im Browser und werden im Browser ausgeführt. Clientseitiges Scripting bezieht sich im Allgemeinen auf die Klasse von Computerprogrammen im Web, die clientseitig vom Webbrowser des Benutzers ausgeführt werden serverseitig.

JavaScript ist für den Benutzer sichtbar und kann leicht geändert werden, daher dürfen wir uns aus Sicherheitsgründen nicht auf JavaScript verlassen.

Wenn Sie also eine machen HTTP Anfrage auf dem Server, liest der Server zuerst die PHP-Datei sorgfältig, um zu sehen, ob es Aufgaben gibt, die ausgeführt werden müssen, und sendet eine Antwort an die Client-Seite. Nochmals, wie @deceze sagte: *Sobald PHP die Ausgabe der Antwort beendet hat, endet das Skript und nichts wird auf dem Server passieren, bis ein neues HTTP Anfrage kommt rein.*

Grafische Darstellung

Bildquelle

Was kann ich also jetzt tun, wenn ich PHP aufrufen muss? Es hängt davon ab, wie Sie es tun müssen: entweder durch Neuladen der Seite oder durch Verwenden eines AJAX-Aufrufs.

  1. Sie können dies tun, indem Sie die Seite neu laden und eine senden HTTP Anfrage
  2. Sie können einen AJAX-Aufruf mit JavaScript tätigen – dies erfordert kein erneutes Laden der Seite

Gute Lektüre:

  1. Wikipedia: Serverseitiges Scripting
  2. Wikipedia: Clientseitiges Scripting
  3. Madara Uchiha: Unterschied zwischen clientseitiger und serverseitiger Programmierung

Ihr Javascript wird auf dem Client ausgeführt, nicht auf dem Server. Dies bedeutet, dass foo wird serverseitig nicht ausgewertet und kann daher nicht in eine Datei auf dem Server geschrieben werden.

Am besten stellen Sie sich diesen Vorgang so vor, als würden Sie eine Textdatei dynamisch generieren. Der von Ihnen generierte Text wird erst dann zu ausführbarem Code, wenn der Browser ihn interpretiert. Nur das, was Sie dazwischen platzieren <?php Tags wird auf dem Server ausgewertet.

Übrigens kann die Einbettung beliebiger Teile der PHP-Logik in HTML oder Javascript zur Gewohnheit werden, zu ernsthaft verworrenem Code zu führen. Ich spreche aus leidvoller Erfahrung.

  • Ihre Antwort hier ist bemerkenswert, da sie den/einen Interpreten erwähnt. Javascript kann jedoch in einer Serverumgebung kompiliert und ausgeführt werden, und es kann auch von einem Server interpretiert werden.

    – Brett Caswell

    10. März 2015 um 17:10 Uhr

In der Webanwendung wird jede Aufgabe in einer Art Anfrage und Antwort ausgeführt.

Die clientseitige Programmierung erfolgt mit HTML-Code mit Java-Skript und seinen Frameworks, Bibliotheken, die im Internet Explorer, Mozilla und Chrome-Browsern ausgeführt werden. Im Java-Szenario werden serverseitige Programmier-Servlets in den Tomcat-, Web-Logik-, J-Boss- und WebSphere-Servern ausgeführt

987210cookie-checkWas ist der Unterschied zwischen clientseitiger und serverseitiger Programmierung?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy