“web服务器”负责响应来自用户端比如浏览器的请求,并向客户端返回静态资源的网页,比如图片,视频,网盘上分享的各种文件下载等。Web 服务器只处理静态的文件而不处理动态内容,仅接收和完成HTTP超文本传输协议的请求。目前流行的用来搭建Web服务可选软件有Apache,Nginx及微软的IIS等。
应用服务器为客户端提供对业务逻辑的访问。这种服务器根据客户端的请求,将数据转换为动态内容。比如上面打开个人微博的例子,需要应用服务器执行程序,从数据库中找到用户的最新微博信息再把信息转换成html网页显示在客户面前。通常满足一个用户的需求还需要数据库来支持。
简而言之,应用服务器处理业务逻辑,web服务器则主要是让客户可以通过浏览器进行访问,处理HTML文件,web服务器通常比应用服务器简单。
WEB服务器:Apache、IIS、Nginx(也是反向代理服务器)Web服务器通常只需支持HTTP协议,单纯处理页面用的
应用服务器:Tomcat、Weblogic、Jboss,WildFly(JBossAS 更名后的社区版)。应用服务器提供的是客户端可以调用的方法,需要支持EJB JNDI JMX 等J2EE API。 比如,Apache属于Web服务器,Weblogic属于应用服务器。 不过,现在大多数应用服务器也包含了Web服务器的功能
应用服务器的搭建很多时候依赖于应用程序的开发语言,各种编程语言生态下对应不同的软件,比如使用JAVA语言开发的项目 通常选择tomcat 或JBoss等作为程序运行的应用服务器,而使用Python/ target=_blank class=infotextkey>Python语言开发web应用一般会选择 django等Python框架下的软件,来作为它的应用服务器。
很多游戏的后台服务器,客户端直接连接到中心网关:一种情况,由中心网关将其连接导向相应的逻辑服务器,网关完成该任务之后就不再参与客户端和服务器的对话;另一种情况,网关负责转发客户端的请求给相应的服务器,同时也负责将服务器回复的内容转发给客户端。
可以认为,这种情况下,客户端是和服务器直接连接并会话的,这也是目前大多数游戏服务器采用的方式,通信协议也是TCP直接连接(可以在TCP层面上定义简单的自己的协议层),这种模型简单清晰,数据流(data flow)也很单纯。
至于缓存,有,但是和web的缓存感觉很不一样,客户端的实时数据一般会保存在缓存里面,一般会是一些专用的缓存服务器,例如redis,memchache等。一些利用C,C++做的游戏服务器,可以自己申请内存来作为缓存,对于这种自己申请内存做缓存管理的话,首先机制很复杂,
其次,如果缓存的数据过多,那么风险越大,因为如果机器掉电或者宕机的话,数据就会丢失。如果不想数据丢失的话,那么就要一套更复杂的机制来保存这些在内存中的数据
当 Web 浏览器成为主要的客户端时,应用服务器和 Web 服务器之间的界限变得模糊。 大多数 Web 服务器都有支持动态内容生成的脚本语言(ASP、JSP、php等)插件。
例如,如果我们将 .NET 插件添加到 IIS 环境中,或者把PHP插件添加到Apache中,我们就可以在 Web 服务器端为客户端提供动态内容了。由于技术的重叠,最流行的服务器通常是这两种类型的混合。从而可以确保最佳系统速度和用户体验TG:li9047