当前位置:首页 > 云服务器 > 正文

下列技术中什么属于web服务器的技术,web服务器关键技术有哪些?

下列技术中什么属于web服务器的技术:一张清单看懂归属

直接给答案:Apache、Nginx、Tomcat、IIS、Node.js、Caddy这六类技术,属于web服务器的核心技术,所谓web服务器的技术,指的是能接收HTTP请求、处理请求逻辑、返回响应内容的软件和支撑它的协议机制,像数据库、前端框架、CDN加速这类,都不属于web服务器的技术。

为什么搞不清“web服务器的技术”这个问题

我们团队在接手企业网站排查和大学计算机课程答疑时,接触到最多的问题就是这个,大家搞混的原因主要有三个:

  • 教材里的“web服务器”和实际工程中的“web服务器”概念有偏差
  • 云服务商把负载均衡、对象存储都打包成“服务器”,混淆了视听
  • 开发框架自带服务器功能,让人误以为框架本身就是web服务器

见过不少面试者在简历上写”精通web服务器技术”,一问却把Docker和Nginx混为一谈。核心区分点在于:web服务器的本质功能是处理HTTP协议,它解析请求、执行逻辑、返回HTML或JSON数据。

真正属于web服务器的技术分类

业内专家指出:判断一项技术是否属于web服务器,唯一标准就是看它是否直接承担HTTP请求的处理和响应职责,按这个标准,技术清单如下:

第一类:传统Web服务器软件

软件名称 开发语言 核心特点 是否属于web服务器技术
Apache HTTP Server C 模块化设计,稳定成熟
Nginx C 高并发,事件驱动
IIS C++ Windows原生集成
Tomcat Java 运行JSP/Servlet
Caddy Go 自动HTTPS配置
Lighttpd C 轻量级,资源占用低

第二类:开发语言内置的服务器能力

  • Node.js的HTTP模块:直接用http.createServer()创建服务,属于web服务器技术
  • Python的WSGI服务器(Gunicorn、uWSGI)

    :处理HTTP请求,属于

  • Java的Netty:基于NIO的高性能网络框架,可以开发web服务器,属于
  • Go语言标准库net/http:内置HTTP服务能力,属于

这些语言内置功能虽然不是完整的服务器软件,但底层确实是web服务器技术的一部分,用Node.js写过接口服务的人应该有体感:你用listen(3000)启动的那一瞬间,你的设备就是一个web服务器。

第三类:与web服务器配合但本身不算技术的“搭子”

下面这些容易和web服务器混在一起,在面试或考试中不属于web服务器的技术:

  • CDN服务:CDN的本质是缓存和分发,边缘节点存的是静态资源副本,不是服务器
  • DNS解析:DNS把域名翻译成IP,只负责寻址,不处理HTTP请求
  • 数据库(MySQL、Redis):存储层,web服务器通过API访问它,但它本身不解析HTTP
  • 前端框架(Vue、React):运行在浏览器端,和服务器技术不沾边
  • Docker容器:Docker是环境隔离工具,不是服务器软件本身

做运维的朋友应该深有体会:你在Docker里跑Nginx,真正响应HTTP请求的是Nginx容器内的进程,Docker只是提供了一个隔离的运行环境。

web服务器和反向代理的区别是什么

这个问题是百度搜索里出现频率很高的长尾词,Nginx经常被同时称作“web服务器”和“反向代理”,很多人直接晕了。

web服务器和反向代理的区别是什么? 一句话:web服务器直接处理和响应用户的HTTP请求,反向代理只是一个“传话人”,它收到请求后转发给后端的真实服务器。

以实际场景来拆解:

行业共识是:Nginx既可以当web服务器,也可以当反向代理,两者不冲突,但在答题时,问“什么属于web服务器的技术”,Nginx一定算,因为它具备完整的HTTP处理能力。

实操验证方式:在一台干净Linux服务器上安装Nginx,修改

/etc/nginx/nginx.conf,添加一个server块:

server { listen 80; root /var/www/html; }

然后在/var/www/html下放一个index.html,重启Nginx,浏览器访问服务器IP,当你看到页面正常渲染时,Nginx就是在作为web服务器工作,如果你把location /配置成proxy_pass http://127.0.0.1:8080

部署web服务器技术的三步操作路径

给刚入门的开发者一套直接可用的操作路径。

第一步:确认当前环境的web服务器

用命令检查系统中已经存在的web服务器技术:

下列技术中什么属于web服务器的技术,web服务器关键技术有哪些? 第1张

如果输出中含有版本号或监听进程,说明对应软件已安装。

第二步:安装并启动一个web服务器

以Ubuntu系统为例,安装Nginx和Tomcat:

sudo apt update sudo apt install nginx -y sudo systemctl start nginx sudo systemctl status nginx

安装Tomcat:

sudo apt install tomcat9 -y sudo systemctl start tomcat9

安装成功后访问http://服务器IP:8080,看到Tomcat默认页面,说明Java web服务器技术已就绪。

第三步:验证具体技术归属

把下面这段fetch代码在浏览器控制台运行,然后将返回值与你的服务器日志对比:

fetch('http://你的域名/api/health') .then(res => res.json()) .then(data => console.log(data));

如果日志里有对应的请求记录,说明处理这个请求的技术就是web服务器的技术,如果请求被CDN拦截或由静态存储响应,那这一段链路涉及的就不是web服务器技术。

选择web服务器技术的判断规则

给团队选型或个人学习定一个可复用的判断框架:

为主

选Nginx,纯静态页面、图片资源、JS/CSS文件,Nginx的并发处理能力优于Apache,内存占用更低,国内互联网企业搭建网站首页,Nginx使用比例在各类web服务器技术中占据了相当大的份额(此处不提供精确数字,因厂商版本迭代较快)。

下列技术中什么属于web服务器的技术,web服务器关键技术有哪些? 第2张

Java应用部署

选Tomcat或Jetty,Spring Boot项目内置Tomcat,你只需打一个Jar包就能启动,不需要额外安装外部服务器,当你执行java -jar app.jar时,内置的Tomcat就是web服务器技术的承担者。

Windows环境下的.NET项目

IIS是首选,和ASP.NET的集成度最高,配置Windows身份验证时比跨平台方案方便得多。

高并发微服务架构

Nginx前置,后端搭配多个Tomcat或Node.js实例,Nginx负责流量分发和静态资源响应,后端实例负责业务逻辑,这就是常见的“Nginx+多应用服务器”架构模式。

考试题的快速判断法则

针对“下列技术中什么属于web服务器的技术”这类选择题,给出三个判断方向:

  • 看端口:默认监听80/443端口的技术,大概率是web服务器
  • 看协议:核心逻辑是处理HTTP/HTTPS解析的,属于web服务器
  • 看响应:用户发出请求后直接返回页面内容的,就是web服务器

由此可推出:DNS也监听53端口,需要排除,因为它虽然为web服务提供支撑,但本身不处理HTTP协议,CDN也不属于,尽管它加速了web内容分发,但只做缓存和转发。

常见问题解答

DNS服务器属于web服务器吗

DNS服务器不属于web服务器,DNS的核心功能是域名解析,将example.com解析为IP地址,它使用UDP/TCP的53端口,而web服务器使用80/443端口处理HTTP协议,你可以把DNS理解为电话簿,web服务器理解为电话接听员电话簿不负责回答你的问题。

分布式中nginx算web服务器还是网关

Nginx的定位取决于配置方式,当Nginx直接处理静态资源请求时,它是web服务器;当Nginx配置了proxy_pass转发到下游服务时,它是反向代理/网关,在多数微服务架构中,Nginx承担双重角色,入口层做网关,匹配到静态资源规则时做web服务器。

web服务器用什么语言写的

主流web服务器软件的开发语言各不相同,Apache和Nginx用C语言编写,Tomcat用Java编写,IIS核心用C++,Caddy用Go语言,C语言因其底层能力强和性能可控,在早期web服务器中被大量采用;Go语言则凭借高并发优势和简洁的并发模型,近年来在新一代web服务器中占比明显提升。

下列技术中什么属于web服务器的技术,web服务器关键技术有哪些? 第3张

0