Ich habe Fragen (hauptsächlich zu Stack Overflow) gesehen, denen dieses Grundwissen fehlt. Ziel dieser Frage ist es, denjenigen, die danach suchen, und denjenigen, die darauf verweisen, gute Informationen zu liefern.
Was sind im Zusammenhang mit der Webprogrammierung die Unterschiede zwischen der serverseitigen und der clientseitigen Programmierung? Welche Sprachen gehören zu welchen und wann verwenden Sie welche?
web-development
server-side
client-side
Madara Uchiha
quelle
quelle
Antworten:
Hintergrund
Bei der Webentwicklung dreht sich alles um Kommunikation. In diesem Fall die Kommunikation zwischen zwei (2) Parteien über das HTTP-Protokoll:
Die Programmierung jeder Seite bezieht sich auf Code, der auf dem jeweiligen Computer, auf dem Server oder auf dem Client ausgeführt wird.
Grundlegendes Beispiel
Programmierung
Serverseitige Programmierung
Serverseitige Programmierung ist der allgemeine Name für die Arten von Programmen, die auf dem Server ausgeführt werden .
Verwendet
Beispielsprachen
Client-seitige Programmierung
Ähnlich wie die serverseitige Programmierung ist die clientseitige Programmierung der Name für alle Programme, die auf dem Client ausgeführt werden .
Verwendet
Beispielsprachen
* HTML und CSS sind an sich keine "Programmiersprachen". Dies ist eine Markup-Syntax, mit der der Client die Seite für den Benutzer rendert .
quelle
Mit den Worten des Laien:
Hier werde ich nur über Webprogrammierung sprechen.
Die clientseitige Programmierung hat hauptsächlich mit der Benutzeroberfläche zu tun, mit der der Benutzer interagiert. Bei der Webentwicklung wird der Code vom Browser auf dem Computer des Benutzers ausgeführt, und zwar hauptsächlich in Javascript, Flash usw. Dieser Code muss in einer Vielzahl von Browsern ausgeführt werden.
Ihre Hauptaufgaben sind:
Die für die Front-End-Programmierung zuständige Person muss wissen :
Die serverseitige Programmierung hat mit der Generierung dynamischer Inhalte zu tun. Es läuft auf Servern. Viele dieser Server sind "kopflos". Die meisten Webseiten sind nicht statisch. Sie durchsuchen eine Datenbank, um dem Benutzer aktualisierte personalisierte Informationen anzuzeigen. Diese Seite interagiert mit dem Backend, wie zum Beispiel der Datenbank.
Diese Programmierung kann in vielen Sprachen erfolgen:
Dieser Code hat zu tun mit:
Die für die serverseitige Programmierung verantwortliche Person muss wissen:
quelle
Andere Antworten haben sich auf , was ist clientseitige und serverseitige Programmierung: Welche Sprachen meist verwendet werden, welche Aufgaben durchgeführt werden müssen, usw.
Das ist absolut richtig, aber ich vermisse es, mich ein wenig auf die Unterschiede zwischen beiden Arten der Programmierung im Kontext der Webprogrammierung zu konzentrieren. Lassen Sie mich versuchen, das anzusprechen.
Sicherheit und Berechtigungen
Bei der clientseitigen Programmierung haben Sie aus Sicherheitsgründen keinen Zugriff auf das gesamte System. Der Benutzer vertraut nicht unbedingt jedem Code, der aus dem Internet heruntergeladen und auf seinem Computer ausgeführt wird. Dies ist das Hauptziel der clientseitigen Umgebung (Browser und JavaScript-Engine): Bereitstellung einer isolierten Umgebung wo Client-Code ausgeführt werden kann, aber nicht auf etwas außerhalb des zulässigen Bereichs zugreifen kann.
Bei der serverseitigen Programmierung empfiehlt es sich, den Zugriff jeder Anwendung auf das zugrunde liegende System zu beschränken, dies wird Ihnen jedoch weitaus weniger auferlegt, da Sie oder Ihr Unternehmen letztendlich die Kontrolle über dieses System haben. Dieses "isolierte Käfig" -Design ist nicht in die serverseitigen Programmiertools und -sprachen integriert, sondern wird über das Installationssetup (unter Verwendung dedizierter Benutzer mit eingeschränkten Berechtigungen, Auswahl von Ports, die Root-Berechtigungen erfordern oder nicht erfordern usw.) erreicht.
Bereitstellung und Plattform
Bei der serverseitigen Programmierung muss die Bereitstellung von außerhalb des Codes mithilfe eines Tools (auch wenn es sich um
make install
ein Tool oder eingit clone
solches handelt) erfolgen. Diese Bereitstellung erfolgt normalerweise manuell - oder wird zumindest in einem halbüberwachten Verfahren erwartet Weg. Das System (dh das Betriebssystem), auf dem Sie das Produkt bereitstellen, ist in der Regel für mehrere Computer einheitlich. Es kann jedoch stark an Ihre Anforderungen angepasst werden.Bei der clientseitigen Programmierung erfolgt die Bereitstellung über Ihren serverseitigen Code, der die Clients automatisch und ohne Überwachung bedient. Das zugrunde liegende System (dh hauptsächlich der Browser) kann auf einer viel größeren Anzahl von Computern sehr unterschiedlich sein. Damit die Bereitstellung überhaupt möglich ist, müssen Standards eingehalten werden, und es gibt einen viel stärkeren Trend zu einer einzigen Sprache und Umgebung.
Aus diesem Grund kann das Kopieren von serverseitigem Code von einem Computer auf einen anderen Wochen dauern, während das Ausführen von clientseitigem Code auf verschiedenen Computern normalerweise trivial ist.
Zustands- und Nebeneffekte
(Ausschlussklausel: Dies ist bei weitem der subjektivste Punkt von allen. Wahrscheinlich hat meine Argumentation viele falsche Aspekte. Es ist aus meiner Sicht nur eine interessante Hypothese.)
Bei der serverseitigen Programmierung ist der Status ein viel größeres Problem, dh, wie Daten auf Anforderung des Benutzers abgerufen und aktualisiert werden können, wobei Konflikte aufgrund von Parallelität auftreten können. Selbst wenn der größte Teil dieser Komplexität auf einen Datenbankserver verlagert wird, liegt es in der Verantwortung des serverseitigen Codes, dass die Datenbank ihre Garantien für die Datenintegrität beibehält, indem sie ihre Schnittstelle korrekt verwendet (z. B. keinen Cache für Aktualisierungen verwenden, die von keinem gesehen werden DB), während es auch ein Ziel des serverseitigen Codes ist, die Datenbank nicht mit Arbeit zu überlasten und den Benutzer auf eine Antwort warten zu lassen.
Bei der clientseitigen Programmierung ist die Präsentation der Ergebnisse für den Benutzer ein viel größeres Problem, und dies impliziert sekundäre Effekte (meistens das Drucken auf dem Bildschirm). Dies soll nicht heißen, dass es sich nicht um einen Zustand handelt (z. B. Cookies), sondern dass das Hauptziel des Codes darin besteht, tatsächlich eine Schnittstelle mit dem Benutzer herzustellen, und dies kann nicht ohne Sekundäreffekte geschehen.
Aus diesem Grund muss bei der clientseitigen Programmierung normalerweise (zu einem bestimmten Zeitpunkt) mit einer Demo auf den Bildschirm geschaut werden, um sicherzustellen, dass alle Farben und das Layout richtig sind. Die serverseitige Programmierung kann fast ausschließlich in einer textorientierten Umgebung erfolgen, in der sie automatisiert ist Tests überprüfen, ob die Logik noch das tut, was sie tun soll.
quelle
Dies soll keinesfalls eine akzeptierte Antwort sein. Ich biete es vielmehr als ergänzenden Punkt (als Antwort auf die
when do you use each of them
Frage) an, der in den anderen bisherigen Antworten noch zu erwähnen ist, nämlich:Schutz des geistigen Eigentums
Auf der Client-Seite befindlicher Quellcode (z. B. in Javascript) ist leicht lesbar und / oder kann rückentwickelt werden, wenn er verschleiert wurde.
Auf dem Server befindlicher Quellcode kann jedoch proprietäre Algorithmen sicher schützen und nur das Ergebnis zurückgeben. eine Art Blackbox.
quelle