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


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

您的代码分为两个完全独立的部分,即服务器端和客户端。

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

双方通过HTTP请求和响应进行通信。PHP在服务器上执行并输出一些HTML和JavaScript代码,这些代码作为响应发送到解释HTML并执行JavaScript的客户端。一旦PHP完成输出响应,脚本就会结束,在新的HTTP请求进入之前,服务器上什么都不会发生。

示例代码执行如下:

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

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

第1步,PHP执行<?php ?>标记之间的所有代码。结果如下:

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

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

该file_put_contents调用没有产生任何结果,它只是将“+ foo +”写入文件中。该<?php echo 42; ?>调用导致输出“42”,现在该代码曾经是该代码的位置。

生成的HTML / JavaScript代码现在发送到客户端,在那里进行评估。该alert呼叫工作,而foo变量没有任何地方使用。

在客户端甚至开始执行任何JavaScript之前,所有PHP代码都在服务器上执行。JavaScript可以与之交互的响应中没有任何PHP代码。

要调用某些PHP代码,客户端必须向服务器发送新的HTTP请求。这可以使用以下三种方法之一进行:

  • 一个链接,导致浏览器加载新页面。
  • 表单提交,将数据提交到服务器并加载新页面。
  • 一个AJAX请求,它是一种向服务器发出常规HTTP请求的Javascript技术,但不离开当前页面。