服务器是干什么的,服务器价位及使用方法

前端面试过程中 , 有一个知识点特别容易被提到 , 就是服务器 。
问题 。
01
web服务器
Web服务器一般指网站服务器 , 是驻留在互联网上的计算机程序 , 主要功能是向浏览器等web客户端提供文档信息 。同时可以持久化浏览器的文档信息 。目前 , 市场上主流的web服务器包括以下几种:
1 , Apache服务器
图为Apache服务器logo 。
2 , Tomcat服务器
图为Tomcat服务器logo 。
3 , Node.js服务器
图中显示了Node.js服务器的徽标 。
以上是目前主流的几款服务器 。当然 , 作为后起之秀 , Node.js是最适合前端工程师的服务器 。同样 , 这也是人们在面试时经常被问到的一点 。
02
服务器的工作原理
该图显示了服务器的工作方式 。
上图是一个web服务器的工作原理图 。可能有同学觉得奇怪 , 这个图和之前说的HTTP请求图差不多!
实际上 , 在软件开发和使用过程中 , web服务器相当于HTTP服务器 。尽管不同的web服务器在细节上有所不同 , 但基本原理是相同的 。下面 , 我们就根据上图逐一分析:
第一步:用户在地址栏输入一个网址 , 然后点击回车键;
第二步:浏览器与服务器建立TCP连接;
第三步:浏览器将用户的事件按照HTTP协议要求的格式封装成数据包 。这个过程的本质就是缓冲区里有这个字节流要发送;
【服务器是干什么的,服务器价位及使用方法】第四步:浏览器确认服务器可以写入 , 并将数据包推入互联网 。最后 , 数据包被提交给服务器;
第五步:服务器收到数据包后 , 以同样的格式解析 , 获取客户端的意图;
第六步:服务器在获得客户端的意图后 , 进行分类处理 , 要么提供某个文件 , 要么处理相关数据;
第七步:将处理结果加载到一个缓冲区 , 或者一个文档 , 或者其他内容;
第八步:服务器会根据HTTP协议格式对Step7中的数据进行打包;
第九步:服务器确定对等体是可写的 , 并将数据包推送到互联网 。数据包由网络处理 , 最终返回给客户端;
第十步:客户端拿到包后 , 以HTTP协议格式解包 , 然后解析数据;
第十一步:客户端处理相关数据并显示在页面上 。
以上11个步骤是web服务器最基本的工作原理 。通过梳理 , 我们不难发现 , 这是一个简单的网络交流过程 。换句话说 , 这是一个发送、接收和处理数据的简单过程 。更高级的web服务器无非是把以上三个基本内容分成更多的细节 。
[S2/]03
静态文件的工作原理
对于web服务器来说 , 除了提供一些数据功能外 , 另一个主要功能就是提供静态文件 。
图web服务器静态文件服务的实现
上图是以GET请求为模板的流程图 。通过观察图表 , 我们不难发现 , 整个静态文件处理过程与之前的动态数据处理基本一致 , 变化在于红蓝标记的位置 。
第一步:当用户点击网页链接或者需要加载一些静态资源(比如css文件、JPEG图片等)时生成 。);
第二步:拆包后 , 服务程序会先判断其请求方式 , 确定是GET请求 , 是对服务器上特定资源的请求;
第三步:服务器需要先确定路径是否存在 , 如果路径真的存在 , 再确定是否可以获取文件;
第四步:在确认路径合法可用后 , 服务程序会根据文件类型进行不同的加载过程 , 将其类型记录为第八步HTTP协议中对应的返回类型(如上所述) , 并添加响应头 。
该图显示了一个简单的静态资源传输过程 。
04
Web服务器数据提交原则
如果只是网页浏览的功能 , 并不能真正实现网站的功能 。为了更好的实现网站的功能 , 需要在客户端和服务器端进行数据交换 。什么是数据交互?比如我们的注册/登录 , 资源上传 , 远程教学等 。都可以称为客户端和服务器端的数据交互 。
图显示了客户端和服务器之间的数据交互 。
通过观察上图可以发现 , 用户在提交数据时 , 往往会点击一个功能按钮 。那么点击这个功能按钮后你做了什么?


推荐阅读