首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基础篇-服务器工作实现的浅析

基础篇-服务器工作实现的浅析

作者头像
進无尽
发布2018-09-12 18:22:37
5140
发布2018-09-12 18:22:37
举报
文章被收录于专栏:進无尽的文章進无尽的文章
前言

对于一个前端开发的人员来说,了解服务器的基础知识,个人觉得是非常必要的,于是就有一个这篇侧重于Java的服务器相关知识的文章,只是简单介绍对于我也是一个拓展。

首先我们来说一下服务器的架构,在很早以前 C/S架构的服务器大行其道,随着时间的推移,这种两层架构的服务器模式逐渐被 B/S 架构的WEB服务器所替代。

B/S架构 vs C/S 架构

关于这俩者的详细关系和比较,你可以百度百科下,不过在我看来,简述下俩者的不同大体有如下方面:

  • C/S结构软件(即客户机/服务器模式)分为客户机和服务器两层
  • B/S结构(Browser/Server,浏览器/服务器 模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器即可,服务器安装SQL Serve、Oracle、MYSQL等数据库。浏览器通过Web Server 同数据库进行数据交互。
  • 从本质上说,Browser/Server结构也是一种Client/Server结构,它可看作是一种由传统的二层模式Client/Server结构发展而来的三层模式Client/Server结构在Web上应用的特例。
  • C/S 一般面向相对固定的用户群,般建立在专用的网络上,小范围里的网络环境,局域网之间再通过专门服务器提供连接和数据交换服务。对信息安全的控制能力很强。 一般高度机密的信息系统采用C/S 结构适宜。可以通过B/S发布部分可公开信息。
  • B/S 建立在广域网之上, 对安全的控制能力相对弱, 可能面向不可知的用户

聊到这里有个词需要解释下,什么是三层架构

三层架构

通常意义上的三层架构就是将整个业务应用划分为:界面层(User Interface layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data access layer)。区分层次的目的即为了“高内聚低耦合”的思想。在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。微软推荐的分层式结构一般分为三层,从下至上分别为:数据访问层、业务逻辑层(又或称为领域层)、表示层。

B/S 三层架构,采用这种分层(数据层、逻辑层、界面层)设计编码实现的b/s模式的软件就是b/s三层架构的软件

因为所有的模块角色只会有三种:数据管理者、数据加工者、数据展示者,意思也就是,笼统说来,软件只会有三层,每一层扮演一个角色。其他的第四层第五层,一般都是这三层里面的其中之一分出来的,最后都能归纳进这三层的某一层中去,所以用三层架构来描述就比较普遍。

服务器

Web服务器的最底层实际上是一个socket。这个socket监听并接受到达的TCP连接。一旦一个连接被建立,就可以通过这个新建立的连接读取、解析信息,然后将这些信息包装成一个HTTP请求。这个HTTP请求还将被移交至web应用程序,来完成请求的动作。

目前主流的服务器方案是 **中小型服务器: Tomcat 大型服务器: Apache +Tomcat **

关于 Tomcat 与 Apache 的关系大体如下:

  • Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。同时Apache音译为阿帕奇。
  • Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。
  • Apache支持静态页,Tomcat支持动态的,比如servlet等, 一般使用apache+tomcat的话,apache只是作为一个转发,对jsp的处理是由tomcat来处理的。 apache可以支持php\cgi\perl,但是要使用java的话,你需要tomcat在apache后台支撑,将java请求由apache转发给tomcat处理。
  • apache是web服务器,Tomcat是应用(java)服务器,它只是一个servlet(jsp也翻译成servlet)容器,可以认为是apache的扩展,但是可以独立于apache运行。
  • 两者都是apache组织开发的 、两者都有HTTP服务的功能 、两者都是免费的。
  • APACHE是一个web服务器环境程序 启用他可以作为web服务器使用 不过只支持静态网页 如(asp,php,cgi,jsp)等动态网页的就不行 。如果要在APACHE环境下运行jsp 的话就需要一个解释器来执行jsp网页 而这个jsp解释器就是TOMCAT, 为什么还要JDK呢?**因为jsp需要连接数据库的话就要jdk来提供连接数据库的驱程,所以要运行jsp的web服务器平台就需要APACHE+TOMCAT+JDK **
  • ** Apache:侧重于http server Tomcat:侧重于servlet引擎,如果以standalone方式运行,功能上与apache等效 , 支持JSP,但对静态网页不太理想 **
关于Tomcat的工作原理

首先我们需要先了解下Servlet

Servlet(Server Applet),全称Java Servlet,暂无中文译文。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。 Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。

Tomcat是Servlet的容器,Servlet 是一种运行在支持Java语言的服务器上的组件,它与普通Java类的区别就是它运行在服务器上。由于Java的平台无关性,再加上Servlet 运行在服务器端,因此 Servlet 对于用户是完全透明的。

Servlet 容器的作用是负责处理客户请求。当客户请求来到时,Servlet容器获取请求,然后调用某个Servlet,并把Servlet的执行结果返回给客户,Tomcat就是起到这样作用的容器。

当客户请示某个资源时,Servlet容器使用 ServletRequest 对象把客户的请求信息封装起来,然后调用 Java Servlet API 中定义的一些Servlet 方法,完成Servlet的执行,接着把Servlet 执行的要返回给客户的结果封装到 ServletResponse对象中,最后Servlet 容器把客户的请求发给客户,完成为客户的一次服务过程。

Paste_Image.png

关于一个Web中使用到的技术之间的关系

我们常常听到 HTML、CSS、JavaScript在网页编程中都会使用到,那到底他们的作用是什么呢,这里打个比喻方便大家大致了解下其各自不同的功能作用。

如果把一个网页比作一个人的话,HTML就是这个人的躯干,CSS就是这个人的衣服,而JavaScript就是这个人的行为动作。


小结

这里罗列了一些关于服务器端乃至Web前端开发的知识,虽然很浅显,但是对于我们开发者来说,了解这些也是一种拓展。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.02.21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
    • B/S架构 vs C/S 架构
      • 三层架构
        • 服务器
          • 关于Tomcat的工作原理
            • 关于一个Web中使用到的技术之间的关系
            • 小结
            相关产品与服务
            云数据库 SQL Server
            腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档