Quelle est la différence entre la programmation côté client et Côté Serveur?

j'ai ce code:

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

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

pourquoi ce n'est pas écrit "barre" dans mon fichier texte, mais alerte "42"?


NB: les révisions précédentes de cette question concernaient explicitement PHP sur le serveur et JavaScript sur le client. La nature essentielle du problème et des solutions est la même pour toute paire de langues lorsque l'une tourne sur le client et l'autre sur le serveur. Veuillez prendre cette pour rendre compte quand vous voyez des réponses parler de langues spécifiques.

408
demandé sur Quentin 2012-12-12 17:03:00

5 réponses

Votre code est divisé en deux parties distinctes, le côté serveur et le côté client .

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

les deux parties communiquent via des requêtes et des réponses HTTP. PHP est exécuté sur le serveur et produit du code HTML et peut-être JavaScript qui est envoyé en réponse au client où le HTML est interprété et le JavaScript est exécuté. Une fois que PHP a terminé la sortie de la réponse, le le script se termine et rien ne se passe sur le serveur tant qu'une nouvelle requête HTTP n'est pas arrivée.

le code exemple s'exécute comme ceci:

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

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

Étape 1, PHP exécute tout le code entre les balises <?php ?> . Le résultat est le suivant:

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

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

l'appel file_put_contents n'a rien donné, il a simplement écrit "+ foo + " dans un fichier. L'appel <?php echo 42; ?> a donné la sortie "42", qui est maintenant à l'endroit où ce code utilisé pour être.

ce code HTML/JavaScript qui en résulte est maintenant envoyé au client, où il est évalué. L'appel alert fonctionne, tandis que la variable foo n'est utilisée nulle part.

tout le code PHP est exécuté sur le serveur avant même que le client ne commence à exécuter JavaScript. Il n'y a plus de code PHP dans la réponse avec lequel JavaScript pourrait interagir.

pour appeler du PHP code, le client devra envoyer une nouvelle requête HTTP au serveur. Cela peut se produire en utilisant l'une des trois méthodes possibles:

  1. un lien, qui provoque le navigateur à charger une nouvelle page.
  2. une soumission de formulaire, qui soumet des données au serveur et charge une nouvelle page.
  3. Un AJAX demande, qui est un code Javascript technique pour en faire régulièrement une requête HTTP au serveur (comme le 1. et 2. volonté), mais sans quitter la page actuelle.

Voici une question qui décrit plus en détail cette méthode

vous pouvez également utiliser JavaScript pour faire ouvrir une nouvelle page du navigateur en utilisant window.location ou soumettre un formulaire, en émulant les possibilités 1. et 2.

392
répondu deceze 2017-05-23 12:02:56

pour déterminer pourquoi PHP code ne fonctionne pas dans JavaScript code nous devons comprendre ce qui est côté client et côté serveur langue et comment ils fonctionnent.

langages côté Serveur (PHP, etc.) : ils extraient des enregistrements des bases de données, maintiennent l'état sur le apatride HTTP connexion , et faire beaucoup de choses qui exigent de la sécurité. Ils résident sur le serveur, ces programmes n'ont jamais leur code source exposé à l'utilisateur

Image from wikipedia_http://en.wikipedia.org/wiki/File:Scheme_dynamic_page_en.svg image attr

donc vous pouvez facilement voir que le langage côté serveur gère la requête HTTP et la traite et comme @deceze a dit PHP est exécuté sur le serveur et produit du code HTML et peut-être JavaScript qui est envoyé en réponse au client où le HTML est interprété et le JavaScript exécuté.

tandis que d'un autre côté langue côté Client (comme JavaScript) réside sur le navigateur et court au navigateur, script côté Client se réfère généralement à la classe de programmes d'ordinateur sur le web qui sont exécutés côté client, par le navigateur web de l'utilisateur, au lieu de côté serveur .

JavaScript est visible pour l'utilisateur et peut être facilement modifié de sorte que pour les questions de sécurité, nous ne devons pas compter sur JavaScript.

donc quand vous faites une requête HTTP sur le serveur que le serveur lit d'abord le fichier PHP soigneusement pour voir s'il y a des tâches qui doivent être exécutées et envoyer la réponse au côté client et encore comme @deceze a dit *Une Fois PHP a terminé la sortie de la réponse, le le script se termine et rien n'arrivera sur le serveur jusqu'à ce qu'une nouvelle requête HTTP arrive.*

Graphical representation

Image source

alors maintenant Que puis-je faire si J'ai besoin D'appeler PHP? Cela dépend de la manière dont vous devez le faire: soit en rechargeant la page, soit en utilisant un appel AJAX.

  1. vous pouvez le faire en rechargeant la page et en envoyant HTTP request
  2. vous pouvez faire appel AJAX avec JavaScript et cela ne nécessite pas de rechargement de la page

Bonne Lecture:

  1. Wikipédia : script côté Serveur
  2. Wikipédia : script côté Client
  3. Madara Uchiha: différence entre la programmation côté client et Côté Serveur
138
répondu NullPoiиteя 2017-07-28 04:55:57

votre Javascript s'exécute sur le client, pas sur le serveur. Cela signifie que foo n'est pas évalué du côté du serveur et que sa valeur ne peut donc pas être écrite dans un fichier du serveur.

la meilleure façon de penser à ce processus est de générer un fichier texte de manière dynamique. Le texte que vous générez ne devient du code exécutable qu'une fois que le navigateur l'interprète. Seul ce que vous placez entre les balises <?php est évalué sur le serveur.

soit dit en passant, prendre l'habitude d'intégrer des morceaux aléatoires de logique PHP en HTML ou Javascript peut conduire à du code sérieusement alambiqué. Je parle par expérience douloureuse.

22
répondu NitayArt 2012-12-12 13:46:38

dans l'application web chaque tâche exécute d'une manière de demande et de réponse.

la programmation côté Client est avec le code html avec le script Java et ses cadres, les bibliothèques exécute dans l'Internet explorer, Mozilla, chrome navigateurs. Dans le scénario java côté serveur programmation des servlets s'exécute dans le Tomcat, web-logique , j boss, WebSphere rompt

2
répondu chandrashekar.n 2016-07-13 09:26:43

je vais essayer de l'expliquer de façon simple.

côté Client est ce que l'utilisateur voir / code qui est visible sur le navigateur.

programmation côté Client comprend HTML(HTML, HTML5, DHTML), CSS(CSS, CSS3) et JavaScript (JavaScript, ES5, ES6, ES7, TypeScript, JQuery, ReactJs, AngularJs, BackboneJs ou tout autre JavaScript Front-end framework).

Côté Client programmation concentrer sur le "comment page va ressembler" et de son comportement au cours de navigateur.

  1. HTML est ce que nous voyons.
  2. CSS décide de sa conception(couleurs, Images flottantes, rembourrage, etc).
  3. JavaScript surveiller les informations de la page. Tous les appels API et la maintenance des données sur DOM sont effectués par JavaScript.

la programmation côté serveur inclut le code qui fournit des données côté Client. L'utilisateur n'est jamais capable de voir le côté serveur.

Côté Serveur La programmation implique le langage de programmation (Java, PHP, .Net, C#, C, C++, NodeJS etc), La base de données(SQL, Oracle, MySql, PostgreySql, No-Sql, MongoDB, etc), L'API de tiers(Rest, Soap), la logique D'entreprise.

Côté Serveur Programmation concentrer sur le "comment rendre les données disponibles pour le Côté Client".

  1. le langage côté serveur est responsable de la communication entre différentes sources de données comme la base de données, L'API tierce partie, le système de fichiers, blockchain, etc. Ils les langages maintiennent certaines API pour les interactions côté client.
  2. La base de données
  3. est responsable du stockage de l'information.
  4. Logique d'Entreprise définit "comment utiliser les données et quoi faire avec les données".

Côté Client les données de la demande ou de la demande de stockage de données, de Serveur-côté via l'API fournie par le Serveur-Côté. Cette requête et la réponse des données sont effectuées en suivant le protocole HTTP/FTP comme REST API, SOAP API.

0
répondu NAVIN 2018-08-22 17:17:26