web 服务器通俗讲解,用大白话讲清楚什么是 Web 服务器

你打开浏览器,敲入网址按下回车,等待几秒页面加载出来。整个过程里,有一个服务一直在待命,那就是Web服务器。它并不是什么特殊设备,本质就是一台持续运行的电脑,上面跑着专门的程序,接收网络请求、检索资源,再把内容传回给访问端。

这台主机可以安放在机房机柜,也可以是云主机,甚至只是桌下闲置的旧笔记本。只要分配了公网IP,外部网络能够连通,并且部署好Web服务软件,就能算作Web服务器。硬件搭配对应软件,二者合一才构成完整的Web服务器。单单一台裸机,没有服务程序,就只是普通计算机;只有软件,缺少硬件载体,程序根本无法运行。

web 服务器通俗讲解,用大白话讲清楚什么是 Web 服务器

浏览器和服务器依靠HTTP协议交互。当你请求/index.html,服务器就去硬盘查找这份文件,找到就返回内容,找不到则返回404错误码。HTTPS在HTTP基础上增加传输加密,默认占用443端口,普通HTTP协议使用80端口。端口可以理解成门牌号,同一台主机能够开放多个端口,Web服务一般监听80和443这两个端口。

我们输入的是域名,例如example.com。浏览器没办法直接识别域名对应的机器地址,会先向DNS发起查询,DNS把域名转换成IP地址。浏览器拿到IP之后,访问80或者443端口,递交访问请求。服务器读取请求内容,再给出对应的响应。

请求静态资源的时候,像HTML、CSS、图片、视频这类文件,服务器直接读取磁盘原样返回,这个过程速度很快,Nginx就非常擅长处理这类静态访问。如果请求需要读取数据库、运算数据或者校验登录状态,Web服务器本身没法独立完成,就转发给后端程序。PHP、Python、Java、Node.js编写的业务代码运行在应用服务器,生成HTML页面之后再交还给Web服务器,最后由Web服务器发送到浏览器。Nginx、Apache常作为前端服务,Tomcat、Gunicorn放在后端,分工各不相同。

一台Web服务器上可以托管多个网站。访问A站点和B站点,背后可能是同一台机器。服务器依靠请求头内的Host字段区分用户想要访问的站点,这项技术叫做虚拟主机,廉价虚拟空间普遍采用这个方案。购买虚拟主机时,服务商已经预先装好Web服务软件,用户只需要上传网页文件。如果自己采购云服务器,就要手动安装Nginx或者Apache,自行配置各项参数。

Web服务器会返回对应的状态码。200代表访问正常,301是页面跳转,403拒绝访问,404资源不存在,500代表服务器内部出错。这些数字不会直接展示在页面,但浏览器依靠状态码判断是渲染页面,还是弹出错误提示。

大型网站不会只依靠单台Web服务器。前端部署反向代理,将用户请求分发到后端数十台主机,还会搭配负载均衡,自动把流量分配给空闲节点。SSL证书大多部署在最外层代理节点,加密解密工作在这里完成,后端主机只处理业务逻辑。缓存也会部署在这一层,重复的访问请求直接返回缓存内容,减少后端程序压力。

所以Web服务器这个叫法,有时候指代硬件主机,有时候指软件程序,也可以指代整套服务系统。不用死记定义,简单理解就是它持续待命,接收请求就查找资源,找到资源返回内容,找不到就反馈错误。日常浏览的每一个网页,背后都有一台或者多台这类设备在持续工作。

免责声明:本文提供的方法与建议仅供技术参考,实际部署效果受机房环境、运营商线路、系统配置等多重因素影响。请在专业人员指导下操作,因自行操作导致的业务损失本站不承担责任。

相关推荐

Web服务器架设 搭建Web服务器详细步骤

第一次搭建Web服务器,很容易觉得步骤繁杂,完整跑通一次之后会发现核心就三样:一台机器、Web服务软件、存放网页文件的目录。剩下工作都是围绕这三样做配置和安全加固。 先说机器。本地电脑