+ Antworten
Ergebnis 1 bis 2 von 2

Thema: [Allgemein] Unterschied Clientseitig und Serverseitig

  1. #1
    Avatar von jeko
    jeko ist offline Foren-Gott jeko befindet sich auf einem aufstrebenden Ast
    registriert
    03-06-2004
    Ort
    [CH]Vor meinem PC[/CH]
    Beiträge
    3.045

    [Allgemein] Unterschied Clientseitig und Serverseitig

    Hallo zusammen,

    Wieder ein kleines (so hoffe ich) Tutorial von mir. Diesmal würde ich gerne den Unterschied zwischen Clientseitigem Programmieren und Serverseitigem Programmieren erläutern.
    Das Tutorial gliedert sich folgendermassen:
    1. Begriff
    2. Beispiele
      1. für clientseitige Sprachen
      2. für serverseitige Sprachen
    3. Links

    Begriff
    'Client' ist englisch und bedeutet der 'Kunde'. Kunde ist in diesem falle etwas metaphorisch zu verstehen. Aus der Sicht des Servers ist der Client insofern der Kunde, als dass er etwas anfragt, und der Server im das gibt. Hier entsteht jedoch kein Vertrag und der ganze piepapo den's in unserem Leben im Zusammenhang mit dem Begriff 'Kunde' gibt. Clientseitig heisst also, Kundenseitig. Was heisst das für uns? Wenn etwas clientseitig ist, betrifft es nur den Kunden, wird also nur beim Client ausgeführt.
    'Server' bedeutet 'Diener'. Unser Server ist somit der, der den Client bedient. Der Client fordert etwas an und unser Server versucht ihn damit zu bedienen. Ist etwas Serverseitig, passiert es nur auf dem Server. Der Client wird nicht mit einbezogen.
    Nun etwas zum Verkehr.
    Wenn ihr eine Seite, ein Dokument oder ein Verzeichnis in eurem Browser aufruft, passiert im Hintergrund (natürlich hinter einer schönen OS-bedingten Oberfläche und einem benutzerfreundlichen Browser) grob dass hier:
    Um das Beispiel zu verdeutlichen, führe ich eine weitere Komponente ein, den User. Das seid ihr. Der Mensch der vor dem Computer sitzt (die Haupt-Fehlerquelle im IT-Bereich).
    -> User gibt URL in die Adressleiste seines Browsers ein. Hier: "www.example.com/foo/bar.php"
    Der Client schickt seine Anfrage an den Server. Hier wird das Verzeichnis und die Datei genannt die der Client will, und welches Protokoll verwendet wird. Der Server ist example.com.
    ---
    Client:
    GET /foo/bar.php HTTP/1.1
    Host: www.example.com
    ---
    Der Server empfängt diese Anfrage und schaut was zu tun ist. Er wechselt in das Verzeichnis /foo, wenn dieses vorhanden, wenn nicht -> Fehler senden. Er sucht im Verzeichnis /foo nach der Datei bar.php. Findet er sie, liest er sie und schickt sie an den Client. Hier gibt er meistens mit um was für einen Dateityp es sich handelt (MIME-Typ) und wie gross die Datei ist, und natürlich einen Statuscode. Der Statuscode teil unserem Browser genau mit, was passiert ist. 200 bedeutet alles lief gut. Würde der Server das File bar.php nicht finden, würde er den Statuscode 404 (file not found) senden. In diesem Fall läuft alles gut, Statuscode 200.
    ---
    Server:
    HTTP/1.1 200 OK
    Content-Length: 1234
    Content-Type: text/html
    Connection: close

    <html><head><title>bar</title>... und so weiter... Hier kommt dann der Inhalt der bar.php
    ---
    Danach wird die Verbindung beendet (Connection: close). Dies passiert im HTT-Protokoll immer nachdem eine Datei ausgeliefert wurde. Deswegen nennt man das HTTP auch 'zustandslos', da es nach einem Transfer die Verbindung kappt und für jeden Transfer eine neue Verbindung geöffnet werden muss. Es können also keine 'Zustände' gespeichert werden (angemeldet, nicht angemeldet, etc...).


    So. clientseitig bedeutet nun, dass es sich auf der Seite des Clients abspielt. Gemeint sind hier meist Programmiersprachen die eben clientseitig sind, d.h. nur auf dem Client ausgeführt werden. Das bekannteste Beispiel ist hier wohl Javascript. Javascript kann nur auf dem Client und nicht auf dem Server ausgeführt werden. Eine Erklärung hierzu wäre zum Beispiel: Javascript ist Teil des HTML-Codes. Der HTML-Code wird über das HTTP übertragen. Wie wir oben gesehen haben, ist das HTTP zustandslos, dass heisst nach der Übertragung wird die Verbindung gekappt. Somit wird das Javascript erst nach der Übertragung ausgeführt, während die Verbindung zum Server schon beendet wurde. Daraus folgt, dass der Server nichts mehr mitbekommen kann von dem was das Javascript macht, da keine Verbindung zwischen dem Client und dem Server mehr besteht. Viele antworten hier natürlich mit AJAX. AJAX ermöglicht, Javascript-gesteuert Requests (Anfragen) an den Server zu schicken und die Antworten zu bearbeiten. Auch hier wird das Javascript aber nur auf dem Client ausgeführt, und tangiert den Server nur in so fern, als dass dieser halt ab und zu ein paar Anfragen bekommt. Eigentlich ist die AJAX-Engine nur ein javascript-gesteuerter Browser. Und der ist auch clientseitig.
    Serverseitig bedeutet nun das Gegenteil. Was das heisst? Na ja. Es dreht sich auch hier meist um Programmiersprachen die auf der Seite des Servers ausgeführt werden und nur dort. Auch hier am besten mit einem Beispiel: PHP. PHP als meistbekannte und -benutzte Sprache ist serverseitig. Sie wird auf dem Server ausgeführt, und zwar auf alle *.php-Dateien. Der obige Dialog müsste somit für den Server erweitert werden, vor allem für die Datei bar.php:
    ---
    Client:
    (...) s. oben
    ---
    Nachdem der Request eingegangen ist, wechselt der Server ins entsprechende Verzeichnis. Nun schaut er nach, ob die angeforderte Datei auf .php endet. Wenn ja, und entsprechende 'Handler' (Konfiguration im Server um den Umgang mit gewissen Dateien zu regeln) aktiviert sind, wird diese Datei durch den Parser von PHP gejagt. Der Server ruft eine neue Instanz des Programms PHP.EXE auf und übergibt dem Programm den Inhalt der Datei bar.php. PHP.EXE parst die Datei, d.h. führt die PHP-Befehle in bar.php zeilenweise aus, und alles was ausgegeben wird, gibt das Programm an den Server zurück. Dieser wiederum leitet dies direkt an den Client weiter. Für den Client spielt es keine Rolle, ob in der Datei PHP-Code war oder ob es eine ganz normale HTML-Datei war, er bekommt so oder so seinen HTML-Code, bzw. das was der Parser zurückgibt. Demnach ist auch die Response (Antwort) gleich wie oben.
    ---
    Server:
    (...) s. oben
    ---
    Auch hier wird nach der Übertragung die Verbindung wie oben geschlossen. Das heisst PHP oder die serverseitige Sprache kann also auch nichts mehr dem Client zu kommen lassen, da keine Verbindung mehr besteht. Jedoch kann PHP, oder die serverseitige Sprache, auf alles zugreifen, was sich auf dem Server abspielt, das heisst eine Verbindung zur Datenbank aufbauen oder Dateien erstellen und so weiter. Eine clientseitige Sprache kann das nicht, dafür aber selbiges auf dem Computer des Clients, sofern die Sprache den entsprechenden Umfang und die Rechte dazu besitzt.

    Beispiele
    für clientseitige Sprachen
    Clientseitige Sprachen werden wie schon gesagt nur auf dem Client ausgeführt. Das bekannteste Beispiel dafür ist wohl JavaScript. Clientseitige Sprachen sind somit:
    • Javascript
    • Java-Applets
    • VBS
    • ActiveX

    für serverseitige Sprachen
    Serverseitige Sprachen werden nur auf dem Server ausgeführt, das bekannteste Beispiel hier wäre PHP oder ASP. Serverseitige Sprachen:
    • PHP
    • ASP & ASP.NET
    • Perl
    • Python
    • SQL
    Links
    Ich hoffe das Tutorial hat dem Einen oder Anderen etwas gebracht und wird auch als Referenz gebraucht.
    Geändert von jeko (16-05-2006 um 07:31 Uhr)
    Arbeit an der Sprache ist Arbeit am Gedanken.
    NoPaste / Format / Analyze / Crypt
    Ich bin ein Schwätzer.

  2.    Empfehlenswerte Literatur von unserem Partner Terrashop

    Das AJAX Kompendium jetzt 84% Rabatt
    Ajax - der Technologiemix aus JavaScript und XML - ist eines der Kernstücke professioneller Web 2.0-Programmierung. Dieses Buch führt Sie auf über 800 Seiten(!) von den ersten JavaScript-Codezeilen bis zur Entwicklung mit Ajax-Frameworks.

    Preis: früher: 49,95€ - jetzt nur: 7,95€

    Hier geht es direkt zum Buch

    Über 1.000 weitere IT-Bücher zum Sonderpreis lieferbar!

  3. #2
    Avatar von jeko
    jeko ist offline Foren-Gott jeko befindet sich auf einem aufstrebenden Ast
    registriert
    03-06-2004
    Ort
    [CH]Vor meinem PC[/CH]
    Beiträge
    3.045

    AW: [Allg.] Unterschied zwischen 'clientseitig' und 'serverseitig' [under constructio

    15/05/2006
    19:30 Uhr
    - Tutorial fertig.
    Arbeit an der Sprache ist Arbeit am Gedanken.
    NoPaste / Format / Analyze / Crypt
    Ich bin ein Schwätzer.

+ Antworten

Ähnliche Themen

  1. Wo ist der Unterschied?
    Von G4m813R im Forum Serverseitige Programmierung
    Antworten: 1
    Letzter Beitrag: 05-05-2004, 14:35
  2. Unterschied zwischen Mann und Frau
    Von Nonens im Forum Fun
    Antworten: 2
    Letzter Beitrag: 29-01-2002, 17:29

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein