小白自己复习用~有错误的请指正!
万物互联的时代,数据是如何从一个设备传递到另一个设备的呢?
答:由网络协议来规定,没有网络协议就没有今天的互联网(Internet)。网络协议规定了一个计算机到另一个计算机中间要通过什么,怎么通过等等。
为了满足不同的需求,有各式各样的网络协议,用对的网络协议会达到事半功倍的效果。
环境准备
在学习的过程中,我们需要自己搭建一个简单的环境。这里我们选用的是客户端(浏览器)-服务器(Java)开发环境。客户端有前端开发(HTML、CSS、JavaScript)、移动端开发(Android、IOS)和嵌入式开发(C、C++、汇编)。
我们使用Java开发是考虑到了跨平台实现。与C++不同的是,Java跨平台只需要编译一次,然后到对应平台的JVM(需要在相应平台上安装JVM软件)解析就ok了。而C++则是不同的平台编译成不同的格式,跨平台使用的话需要多次编译。
Java开发必备:
JDK(Java Development Kit)开发工具包和JRE(Java Runtime Environment)运行环境
通过JDK开发Java程序,在JRE上运行。
客户端与服务端
服务器是如何接收众多客户端发给它的消息的:服务器上有许多不同的端口,通过端口去监听别人发送过来的请求,在端口上运行一个服务器软件来接收数据。比如,当客户端往80端口扔数据,服务器软件就听的有人往80扔数据了,就拿到这个数据,通过Java程序做解析(也就是对客户端的请求做处理),最终通过80端口把响应数据送回去。
有一种情况:Client上的不同软件(比如说Client有3个软件A、B、C),向Server的同一个端口发送请求,服务器软件就需要区分是Client的哪一个软件发过来的请求,这时候就有另外一个概念:部署项目,我们服务器开发人员就要针对A、B、C分别开发三个相应的Java项目,部署到服务器软件上,根据Client请求的性质决定挑哪个项目去处理数据。比如客户端发来的是A软件的请求,服务器软件拿到请求后,就要用部署的项目A去处理。
当项目过多,服务器软件撑不住:把其中的几个项目放到另外一个服务器软件上去
当担心整个服务器撑不住:再弄一台服务器……这样就会有成群结队的服务器,就变成机房了…
知名的服务器软件: Tomcat、Nginx、Apache