客户端编程和服务器端编程有什么区别?

我有以下代码:

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

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

为什么这不将“ bar”写入我的文本文件,而是发出“ 42”警报?


注意:此问题的早期修订版本明确涉及服务器上的PHP和客户端上的JavaScript。当一种语言在客户端上运行而另一种语言在服务器上运行时,问题和解决方案的本质对于任何一对语言都是相同的(即使它们是相同的语言)。当您看到有关特定语言的答案时,请考虑到这一点。

TomGil村村2020/03/12 18:33:08

我将尝试以一种简单的方式进行解释。

客户端是用户看到/编码的内容,在浏览器中可见。

客户端编程包括HTML(HTML,HTML5,DHTML),CSS(CSS,CSS3)和JavaScript(JavaScript,ES5,ES6,ES7,TypeScript,JQuery,ReactJs,AngularJs,BackboneJs或任何其他JavaScript前端框架)。

客户端编程侧重于“页面外观”及其在浏览器中的行为。

  1. HTML是我们所看到的。
  2. CSS决定其设计(颜色,浮动图像,填充等)。
  3. JavaScript监视器页面信息。JavaScript执行所有API调用并通过DOM维护数据。

服务器端编程包括向客户端提供数据的代码。用户永远无法看到服务器端。

Server Side Programming involves Programming Language(Java, PHP, .Net, C#, C, C++, NodeJS etc), Database(SQL, Oracle, MySql, PostgreySql, No-Sql, MongoDB, etc), Third Party API(Rest, Soap), Business Logic.

Server-Side Programming focus on "how to make data available for Client-Side."

  1. Server-Side Language is responsible for communicating between different sources of data like database, third-party API, file system, blockchain, etc.. These languages maintain a particular API for client-side to interact with.
  2. The database is responsible for storing information.
  3. Business Logic defines "how to use data and what to do with data."

Client-Side request data or request to store data, from Server-side via API provided by Server-Side. This request and response of data are done by following HTTP/FTP protocol like REST API, SOAP API.

YOC405654072020/03/12 18:33:08

在Web应用程序中,每个任务都以请求和响应的方式执行。

客户端编程是使用带有Java脚本及其框架的html代码进行的,库是在Internet Explorer,Mozilla和chrome浏览器中执行的。在Java场景中,服务器端编程servlet在Tomcat,web-logic,j boss,WebSphere服务器中执行

Stafan阿飞2020/03/12 18:33:08

您的Javascript将在客户端而不是服务器上执行。这意味着该foo值不会在服务器端进行评估,因此无法将其值写入服务器上的文件。

考虑此过程的最佳方法是好像正在动态生成文本文件。您生成的文本仅在浏览器解释后成为可执行代码。<?php服务器上只会评估您在标签之间放置的内容。

顺便说一句,养成在HTML或Javascript中嵌入随机PHP代码逻辑的习惯会导致代码复杂化。我从痛苦的经历中发言。