首先明白两个概念:什么是客户端?什么是服务端?
用最简单的话来讲,服务端就是提供服务的端,客户端就是请求服务的端。
服务器
提供服务的端,包括“业务逻辑”的处理。
硬件上说的服务器指一台或多台电脑;
软件上说的服务器指web服务器,如Apache,对外发布服务,来提供服务,安装在硬件上使用。对于简单的Apache,就是给电脑开一个web服务,设置端口,客户端可以通过浏览器访问该服务器电脑。JaveEE写的web的项目,部署到web服务器上后,客户端才能访问这些项目。
比如,用户在Firefox浏览器中输入百度ip,浏览器中弹出来百度首页后,搜索Python,这时候会得到Python相关的网页,此时,搜索用户就是在接受百度服务器端的服务。这时候,Firefox是用户的客户端,服务器端是远端的百度的电脑。
客户端
请求服务的端,用户使用的端。
硬件上说的客户端指电脑、手机等;
软件上说的客户端指浏览器、微信等。
通过浏览器客户端访问淘宝,会返回整个网页的html文本,html文本里很多样式是修饰属性;而对于手机客户端,性能有限,主要关注数据信息(xml、json数据传输格式),不需要过多html的修饰。
下面再来认识一下服务器端的JavaScript(node.js)和web端的JavaScript
web端的JavaScript包括一下几个部分:
- ECMAScript,(是js的标准,js是它的具体实现和扩展,它描述语言的语法和基本对象,如:语法,运算符,语句,继承机制,数据结构以及一些内置对象)
- DOM(文档对象模型),描述处理网页内容的方法和接口,将整个文档document解析成dom树供用户使用js对文档进行处理。
- BOM(浏览器对象模型),描述可以和浏览器窗口交互的方法和接口(对象结构),如:window对象,history、location、navigator等。
服务器端的JavaScript
Nodejs:
ECMAScript
(语言基础,如:语法、数据类型结构以及一些内置对象)os
(操作系统)file
(文件系统)net
(网络系统)database
(数据库)
总结:在客户端,JavaScript需要依赖浏览器提供的JavaScript引擎解析执行,浏览器还提供了对DOM的解析,所以客户端的JavaScript不仅应用核心语法ECMAScript,还会操作DOM和BOM。常见的应用场景如用户交互、动画特效、表单验证、发送Ajax请求等。
在服务端,JavaScript不依赖浏览器,而是由特定的运行环境提供的JavaScript引擎解析执行,例如Node.js。服务器端的JavaScript应用核心语法ECMAScript,但是不操作DOM和BOM。它常常用来做一些在客户端做不到的事情,例如操作数据库、操作文件等等。另外,在客户端的ajax操作只能发送请求,而接收请求和做出相应的操作就需要服务器端的JavaScript来完成。
简而言之,客户端的JavaScript主要用来处理页面的交互,而服务器端的JavaScript主要用来处理数据交互。