常见的Web服务器软件、HTTP服务器、应用服务器之间的界限已经非常模糊

头图 | CSDN从视觉中国下载

先说一句,自从我在B站开始刷视频,感觉要学的东西太多了。这个“服务器软件素养”是我看了杨哥的一个视频后想出来的。比如Web服务器、HTTP服务器、应用服务器这三个概念,大家已经见过很多次了,但是如果非要我说它们的区别,我就无语了。

还有,我用过Nginx网站在服务器可以打开,Jetty,它们之间有什么优缺点,嗯……继续无语。可能有很多和我一样用过的朋友,但是具体的区别真的很难说,所以打算借此机会和大家一起学习一下。

(我是班代表,我很自豪)

图片[1]-常见的Web服务器软件、HTTP服务器、应用服务器之间的界限已经非常模糊-唐朝资源网

首先,Web服务器,一般指网站服务器,可以为浏览器(PC或手机)等Web客户端提供请求数据或下载数据的服务。服务器使用 HTTP(超文本传输​​协议)与客户端浏览器进行通信,因此我们也将 Web 服务器称为 HTTP 服务器。

我们来谈谈应用服务器,它是一个软件框架,提供了应用程序运行的环境。通常用于为应用程序提供安全、数据、事务支持、负载均衡、大规模分布式系统管理等服务。

在我看来,Web 服务器和应用程序服务器之间的界限已经模糊,后者更高级一点,就像公司和企业这两个术语之间的区别。

常见的web服务器软件有Nginx、IIS,常见的应用服务器软件有JBoss,前者更轻量级,后者更重量级。

接下来,我们来谈谈一些常见的服务器软件。

01、

就我的编程生涯而言,我用得最多,没有之一。如果安装成功,可以在本地浏览器访问:8080,显示其默认主页,如下图。

图片[2]-常见的Web服务器软件、HTTP服务器、应用服务器之间的界限已经非常模糊-唐朝资源网

它是由软件基金会下的一个项目开发的容器。它支持和 Page (JSP) 并提供一些独特的功能作为 Web 服务器。

JSP 是 Sun 公司建立的动态 Web 技术标准。JSP可以响应客户端发送的请求,根据请求的内容动态生成HTML、XML或其他格式的文档网页,然后返回给请求者。

JSP使用Java语言作为脚本语言为用户的HTTP请求提供服务,可以与服务器上的其他Java程序一起处理复杂的业务需求。我是一个三线城市的Java程序员,我要开发一些小网站,这也是我用得最多的原因。

02、Nginx

Nginx 是一个轻量级的 Web 服务器,也支持反向代理。由于内存占用少、启动速度极快、并发能力强,被广泛应用于互联网项目中。

图片[3]-常见的Web服务器软件、HTTP服务器、应用服务器之间的界限已经非常模糊-唐朝资源网

Nginx 最不幸的事情之一是它的作者 Igor 在监狱里。

在官方测试结果中,Nginx 可以支持 5 万并行连接,国内知名公司网站在服务器可以打开,如百度、京东、新浪、网易、腾讯、淘宝等都在使用。

不知道大家有没有听说过虚拟主机的概念,也就是Web服务中有一个独立的网站站点,这个站点对应一个独立的域名(可能是IP或者端口),有独立的程序和资源, 并且可以是外部独立的。为用户提供访问服务。

虚拟主机分为三种类型:基于域的虚拟主机、基于端口的虚拟主机和基于IP的虚拟主机。

Nginx可以使用{}标签来标识一个虚拟主机,一个Web服务可以有多个虚拟主机标签对,即可以同时支持多个虚拟主机站点。这是非常实用的。

03、

一开始,我还以为是,又傻又不清楚。后来我才知道它们完全不同,标志也不同(说实话)。

图片[4]-常见的Web服务器软件、HTTP服务器、应用服务器之间的界限已经非常模糊-唐朝资源网

一般指HTTP,是 下的Web服务器软件(和同一个基金会,容易混淆)。由于其跨平台和安全性,它被广泛使用,是最流行的网络服务器软件之一。它通过简单的 API 快速、可靠且可扩展。

我在服务器上安装它时使用它。那时我并不知道 LAMP 的存在,所以在安装过程中吃了不少苦头。关键是最后安装不成功,大写的尴尬。

最后,在青铜群里一位从事PHP的群友的远程帮助下,安装完成。LAMP是他告诉我的。安装起来很傻,很适合我这种对命令行有抵抗力的程序员。

LAMP 是一组运行动态网站或服务器的免费软件的首字母缩写词:

当这些软件一起使用时,它们是非常动态的。它有很多变种。另一个比较有名的是 LNMP,它被 Nginx 所取代。

04、码头

Jetty 和 JSP 有很多相似之处,并提供了运行时环境。Jetty 是用 Java 语言编写的,它的 API 作为一组 JAR 包分发。

图片[5]-常见的Web服务器软件、HTTP服务器、应用服务器之间的界限已经非常模糊-唐朝资源网

相比之下,Jetty 可以同时处理大量的链接,并长期维护这些链接。比如一些网络聊天应用就很适合Jetty服务器,比如淘宝的网络版旺旺。

Jetty 的架构比较简单。它有一个基本的数据模型。这个数据模型就是所有可以扩展的组件都可以加为一个,Jetty就是帮我们管理这些。

05、

是一个用 Java 编写的灵活、高性能的 Web 服务器,提供基于 NIO 的阻塞和非阻塞 API。

它可以嵌入到应用程序中,也可以通过几行代码独立运行,从而非常容易上手。以下代码是一个使用官网提供的 Async IO 的简单 Hello World 服务器示例:

public class HelloWorldServer {

public static void main(final String[] args) {
Undertow server = Undertow.builder
.addHttpListener(8080, "localhost")
.setHandler(new HttpHandler {
@Override
public void handleRequest(final HttpServerExchange exchange) throws Exception {
exchange.getResponseHeaders.put(Headers.CONTENT_TYPE, "text/plain");
exchange.getResponseSender.send("Hello World");
}
}).build;
server.start;
}
}

直接运行后,在浏览器地址栏输入:8080即可访问。是不是感觉很轻?

如果有小伙伴用过和开发过小网站,应该不会陌生,因为已经切换到默认容器了。

它是一个基于Java语言的极速WEB+ORM框架。其核心设计目标是快速开发、代码少、易学、功能强大、重量轻、易于扩展。

06、企业

至于其他一些企业级的服务器软件,我个人没有用过,就不赘述了。

相信看到制作人就知道这些服务器软件已经够重量级了,而且个个都是大佬,个个都是大佬。

© 版权声明
THE END
喜欢就支持一下吧
点赞84 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片