服务器端编程与客户端编程

时间:2015-07-14 01:36:35

标签: javascript client-side server-side-scripting

我试图更好地理解这个概念。服务器端编程的重点是允许我们与他人通信吗?无论是获取新想法还是获取无法在客户端本地存储的数据,因为信息太多了?

2 个答案:

答案 0 :(得分:2)

有几种典型的软件架构:

  • 非联网应用程序(不通信,仅限客户端)
  • 服务器 - 客户端应用程序(通常包含一个或多个中央服务器,以及与服务器联系的多个客户端)
  • 点对点应用程序(仅具有相互通信的客户端)。

此处,客户端通常是在用户正在与之交互的用户计算机上执行的应用程序的一部分。服务器被定义为用户不直接交互的应用程序的一部分,并且不在他的计算机上,而是在其他地方。这种分离可能有多种原因:数据大小,数据安全性,数据可用性或简单协调。

例如,当您在网络浏览器上访问Google时,网络浏览器就是客户端。谷歌是服务器。您的计算机不知道Web上的所有内容;但谷歌有一个很好的主意。

再举一个例子,如果你玩像魔兽世界这样的MMORPG,你的游戏就是客户端,而暴雪的计算机就是服务器;你告诉服务器你在做什么,服务器告诉你结果,就像纸笔游戏管理员一样。没有服务器,你无法知道其他人在做什么。

或者,如果你想再次咨询美国海军天文台的原子钟,你就是客户,时钟就是服务器;你联系它,因为很明显,你不知道正确的时间,而且确实如此。

现在,例如,您可能会说在某些情况下可能不需要服务器。例如,在MMORPG案例中,玩家不能直接相互联系吗?第一个问题是可发现性:他们如何在互联网上找到对方?必须有一些中心位置告诉每个人其他人的地址。但如果这就是服务器所做的全部,那么您必须联系所有在线玩家(并且还有很多)来询问他们在哪里,以及他们是否在同一张地图上经常问他们同样的问题;你的互联网连接将无法做到这一点。还需要考虑安全性:服务器通过更改游戏代码并告知其他玩家虚假值,确保(或者应该确保)您没有在地图上传送。例如,如果客户负责记住玩家拥有多少金币,那么很快变得非常富有就是微不足道的:只是骗他人。

答案 1 :(得分:1)

当您访问互联网上的网站时,您的浏览器是读取HTML / CSS / JavaScript的解释器。要阅读这些内容,您的浏览器必须首先下载代码,然后解释它,然后将其显示给您。由于您的Web浏览器下载了代码,因此您很容易看到它。 (见下文)。 client side code

这对博客,信息网站,项目页面等小型项目非常有用。但是说你在一个大项目上工作非常努力,而且你不希望别人看到你的代码。在客户端编程中,webbrowser读取代码并显示它。如果您右键单击并保存静态(HTML,CSS,仅限JavaScript)网站,即使您关闭了互联网,也可以查看它。在服务器端编程中,您的Web浏览器无法读取代码,因为代码不是通常的HTML / CSS / JavaScript。由于您的Web浏览器无法读取代码,因此它会查找服务器(远程数据中心中的巨型计算机)。服务器为Web浏览器执行所有操作,只返回结果。 Web浏览器具有结果,但不知道服务器如何处理它们,因此它显示结果,但不显示其背后的代码。

这很好,因为对于一个人来说,所有代码逻辑都是私有化的,这对于安全性和隐私性至关重要。而且,它发生得非常快。由于服务器是一台比你的速度快得多的大型计算机,因此您网站的所有逻辑都可以快速处理。此外,您还可以与数据库进行通信并存储数据,而在客户端编程中,所有操作都只发生在您的计算机和计算机上。基本上你的代码有能力记住。

从本质上讲,您将使用客户端编程来获取信息,样式和小项目。客户端通常被称为前端开发,因为它是用户看到的(前端)。后端开发(服务器端)是后台逻辑,是幕后发生的一切,用户没有,也不应该看到。如果你正在创建一个大型网站,并且你有一个用户帐户,你不能只是将他们的用户/传递存储在一个javascript变量中因为a)每个人都能看到代码,因此,用户信息和b )他们的用户/通行证一旦关闭页面就会消失。服务器端通信为我们打开了一堆门。