web服务器的工作原理

本文参考https://blog.csdn.net/qq_36359022/article/details/81666221

Web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,可以向浏览器等Web客户端提供文档,也可以放置网站文件,让全世界浏览;可以放置数据文件,让全世界下载。

一、web服务器与http服务器区别

Web服务器是指驻留于因特网上某种类型计算机的程序。当Web浏览器(客户端)连到服务器上并请求文件时,服务器将处理该请求并将文件反馈到该浏览器上,附带的信息会告诉浏览器如何查看该文件(即文件类型)。服务器使用HTTP(超文本传输协议)与客户机浏览器进行信息交流,这就是人们常把它们称为HTTP服务器的原因。
Web服务器不仅能够存储信息,还能在用户通过Web浏览器提供的信息的基础上运行脚本和程序。

Web服务器 约等于 HTTP服务器 + 其他服务

目前所熟知的Web服务器有很多,其最主流的是 Apache, Nginx, IIS

GET和POST是HTTP请求的两种基本方法:
对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);
而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。

二、web服务器工作原理
在这里插入图片描述
工作流程:
(1)用户做出操作,可以是填写网址敲回车、可以是点击链接、可以是点击按键等,接着浏览器获取该事件。
(2)浏览器与对端服务程序建立TCP连接(三次握手)
(3)浏览器将用户事件按照HTTP协议格式打包成一个数据包,其实质就是在待发送缓冲区中的一段有着HTTP协议格式的字节流。
(4)浏览器确认对端可写,并将该数据包推入Internet,该包经过网络最终递交到对端服务程序。
(5)服务端程序拿到该数据包后,同样以HTTP协议格式解包,然后解析客户端的意图。
(6)得知客户端意图后,进行分类处理,或是提供某种文件、或是处理数据。
(7)将结果装入缓冲区,或是HTML文件、或是一张图片
(8)按照HTTP协议格式将(7)中的数据打包
(9)服务器确认对端可写,并将该数据包推入Internet,该包经过网络最终递交到客户端
(10)浏览器拿到包后,以HTTP协议格式解包,然后解析数据,假设是HTML文件
(11)浏览器将HTML文件显示在页面

而Web服务器的本质就是 接收数据 ⇒ HTTP解析 ⇒ 逻辑处理 ⇒ HTTP封包 ⇒ 发送数据

三、Web服务器之提供静态文件

Web服务器最主要的功能是提供静态的文件。日常的上网浏览大多是网页浏览,少数时候才会有一些数据的提交操作
在这里插入图片描述
四、Web服务器之数据提交
仅仅只是网页的浏览并不能满足所有人的需求,客户端与服务器应当是有数据交互的。
即使单方面的资源请求任然是网络的主力军。
在这里插入图片描述

公共网关接口(Common Gateway Interface,CGI)是Web 服务器运行时外部程序的规范,按CGI编写的程序可以扩展服务器功能。CGI应用程序能与浏览器进行交互,还可通过数据API与数据库服务器等外部数据源进行通信,从数据库服务器中获取数据。格式化为HTML文档后,发送给浏览器,也可以将从浏览器获得的数据放到数据库中。几乎所有服务器都支持CGI,可用任何语言编写CGI,包括流行的C、C++、Java、VB 和Delphi 等。

Web服务器工作原理可以简单描述为以下几个步骤: 1. 客户端发送请求:当用户在浏览器中输入网址或点击链接时,浏览器会发送一个HTTP请求给服务器。这个请求包含了要访问的资源的信息,如URL、请求方法(GET、POST等)等。 2. 服务器接收请求:Web服务器接收到客户端发送的请求后,会解析请求的内容,包括URL、请求方法和其他附加信息。 3. 处理请求:根据解析到的URL和请求方法,服务器会执行相应的处理逻辑来获取请求的资源。这可能涉及到读取文件、从数据库中检索数据或执行其他必要的操作。 4. 生成响应:服务器根据处理请求的结果生成一个HTTP响应。这个响应包含了响应状态码(例如200表示成功、404表示资源未找到等)、响应报头(包含有关响应的元数据)和响应正文(包含实际的内容)。 5. 发送响应:服务器将生成的HTTP响应发送回客户端。这个过程中,响应会经过网络传输,并由客户端浏览器接收。 6. 客户端渲染:一旦客户端浏览器接收到服务器发送的响应,它会根据响应的内容进行解析和渲染,最终呈现给用户。 整个过程中,Web服务器起到了中间人的角色,负责接收客户端请求、处理请求、生成响应并发送回客户端。这样,用户就可以通过浏览器与Web服务器进行交互,获取所需的网页和其他资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值