Web服务器最核心的作用就是:接收用户的请求,然后把对应的内容返回给用户。

可以把它理解成一个7x24小时在线的“服务员”或“文件管理员”,下面从几个具体的方面来拆解它的作用:
这是最根本的作用,当你在浏览器里输入网址(比如www.baidu.com)并回车时,实际上就是你的浏览器(客户端)向远程的一台电脑(服务器)发送了一个HTTP请求。
接收请求: Web服务器一直在监听特定的网络端口(通常是80或443端口),等待浏览器的“敲门”。
解析请求: 服务器读懂浏览器的请求,我想要index.html 这个文件”或者“帮我执行search.php 这个程序,并带上关键词”。
查找资源: 根据请求的地址,服务器在自己的硬盘(或内存缓存)里查找对应的文件或程序。

返回响应: 找到资源后,Web服务器会把它包装成一个HTTP响应包,里面包含了状态码(200成功,404找不到,500服务器内部错误等)、文件类型(HTML、图片、CSS等)和具体的内容,然后通过网络发送回你的浏览器。
处理错误: 如果找不到文件或权限不够,服务器会返回对应的错误页面(比如经典的404页面)。
可以想象成: 你(浏览器)去一个图书馆(服务器)借书,跟管理员(Web服务器)说“我想要《三体》”,管理员去书架上找到这本书,然后把书拿给你。
这是最基本的一种工作,服务器上存储着HTML文件、CSS样式表、JavaScript脚本、图片、视频、PDF等文件,它就像一个网络硬盘。
作用: 当用户访问一个页面时,直接把这个文件原封不动地送回给浏览器。

一个纯粹的企业宣传网站、一个博客的文章页面,它们的HTML内容都是事先写好、保存在服务器上的。
绝大多数的现代网站(比如淘宝、知乎、抖音)都不是简单的静态文件,当你搜索一个商品或发布一条评论时,页面内容是实时生成的。
作用: Web服务器本身不具备生成动态内容的能力,但它可以作为一个“中间人”,把请求转交给后端的应用程序(比如用Python、Java、PHP、Node.js写的程序)。
如何工作: 当服务器发现请求是动态的(比如login.php 或/api/users),它不会直接返回一个文件,而是去启动或连接后端的应用服务器,这个应用服务器会查询数据库、进行业务逻辑处理(比如验证用户名密码),然后生成最终的HTML、JSON或XML数据,Web服务器再把这些数据返回给浏览器。
常见的网关接口(通讯协议):
CGI: 古老的协议。
FastCGI: 比CGI更高效,PHP常通过它和Nginx或Apache配合。
WSGI / ASGI: Python应用的常用接口。
反向代理: 直接将请求转发给后端的应用服务器(如Tomcat、Gunicorn等),这是现代架构中非常常见的方式。
可以想象成: 你去一个餐厅(Web服务器)点菜,你点了一个现做的披萨(动态请求),服务员(Web服务器)把菜单(请求)交给后厨的厨师(应用程序),厨师和面、放料、烤制,做好了披萨(生成响应内容),服务员再把做好的披萨端到你桌上。
Web服务器是网络的第一道防线。
加密通信(HTTPS): 通过配置SSL/TLS证书,服务器可以把所有传输的数据进行加密,这样,即使有人截获了网络数据包,看到也是一堆乱码,无法窃取你的密码或信用卡信息,这是Web服务器最重要的功能之一。
身份认证: 可以要求用户输入用户名和密码才能访问某些目录或文件。
IP黑白名单: 可以阻止来自某些恶意IP的访问,或者只允许特定IP段的访问。
防攻击: 通过配置,可以一定程度上防御DDoS攻击、SQL注入等常见网络威胁。
当网站访问量很大时,一台服务器可能无法处理所有请求。
负载均衡: Web服务器可以充当“交通指挥员”,把用户的请求平均分发到多台后端的应用服务器上,避免其中一台过载。
缓存静态内容: 将用户频繁请求的图片、CSS、JS文件缓存到内存中,响应速度远快于每次重新读取硬盘。
反向代理: 作为反向代理时,它可以隐藏后端服务器的真实IP地址,增加安全性,并可以利用其处理静态文件的高效性,为后端应用服务器减轻压力。
Web服务器会记录下所有访问它的请求日志(Access Log)和错误日志(Error Log)。
作用: 这些日志是网站运营的“黑匣子”,通过分析日志,可以知道:
- 有多少人访问了网站?
- 哪个页面最受欢迎?
- 用户是从哪个链接进来的(Referer)?
- 有没有人试图攻击网站(比如反复尝试不存在的页面导致大量404)?
- 服务器是否出现了内部错误(500错误)?
| 作用 | 通俗解释 | 典型例子 |
| 核心功能 | 接收请求,返回结果 | 从网址到看到网页的全过程 |
| 托管静态内容 | 网络上的共享文件夹 | 访问一个只有HTML和图片的展示页 |
| 执行动态内容 | 中间人,调用电脑程序来做事 | 登录、搜索、购物车、发动态 |
| 安全与访问控制 | 门卫和安检员 | HTTPS加密、密码保护页面、阻止攻击IP |
| 性能与负载均衡 | 交通指挥官和加速器 | 大量用户同时访问时,网站仍能流畅运行 |
| 日志与监控 | 黑匣子记录仪 | 分析网站流量、排查错误、发现安全隐患 |
常见的Web服务器软件有:
Nginx: 性能极高,处理静态文件(图片、CSS、视频)和作为反向代理的能力非常强大,目前市场份额最高。
Apache: 历史悠久,功能全面,配置灵活,社区庞大,在小规模到中等规模的项目中非常流行。
IIS: 微软出品,主要用在Windows服务器上,与.NET技术结合紧密。
Caddy: 新一代Web服务器,最大的亮点是自动HTTPS配置,使用非常简单。
没有Web服务器,你看到的网页、用的App,都无法通过网络呈现到你面前,它是整个互联网世界的基础设施。
文章摘自:https://idc.huochengrm.cn/js/26901.html
评论