WEB服务器概述与基本⼯作流程
web服务器主要提供什么服务WEB服务器概述
Web服务器就是可以接收HTTP请求,然后将响应返回给客户端的软件或设备。Web服务器实现了HTTP协议、管理着Web资源,并负责提供Web服务器的管理功能(配置、控制、扩展等),由于Web服务器主要与HTTP通信打交道,所以有时候我们也将其称作HTTP服务器,对应的,客户端浏览器可以称作为HTTP客户端。
Web服务器基本⼯作流程
建⽴连接:由于HTTP通信是基于TCP协议的,所以需要先建⽴连接才能开始通信,这也是为什么我们在实现web服务器的时候要指定IP和端⼝的原因,客户端可以根据这个IP地址和端⼝号与服务器建⽴连接(TCP的三次握⼿);
接收请求:⼀旦服务器与客户端建⽴连接后,服务器就可以接收从客户端发过来的请求报⽂,第⼀次请求时先建⽴连接,对于
HTTP/1.1 来说,默认⽀持持续连接,所以后续请求都可以在这个连接上进⾏,不需要额外建⽴连接;
处理请求:服务器收到请求报⽂并解析完成后(主要是请求⾸部),会对请求进⾏处理,⽐如POST请求需要包含请求实体,判断是否有访问权限,指定路径是否存在,返回缓存还是原始资源,如果是静态资源的话(⽐如 HTML、图⽚、CSS ⽂件等)直接从⽂件系统获取并返回即可,如果是动态资源的话,还需要通过 CGI ⽹关请求后端应⽤程序接⼝(PHP、Java、Python 等编写的应⽤程序),如果配置了负载均衡,还要将请求进⾏转发;
访问资源:服务器根据请求处理结果去指定位置获取资源,如果资源存储在缓存中从缓存获取,存储在⽂件系统中从⽂件系统获取,存储在 CDN 中从 CDN 处获取,存储在数据库中则从数据库获取等;
构建响应:请求处理完成并获取到对应的资源后,服务器开始构建响应报⽂,响应⾸部和响应实体的设置需要遵循 HTTP 协议规范;
返回响应:响应报⽂构建完成后,会沿着请求来路将其返回给客户端,如果当前 HTTP 连接是持久连接的话,需要保持连接打开状态,否则会关闭连接,此时,需要注意的是对持久连接⽽⾔,响应头中必须包含 Content-Length ⾸部字段,否则客户端不知道什么时候响应实体结束;
记录⽇志:当⼀个 HTTP 事务(请求响应)结束后,Web 服务器通常会在⽇志中记录该事务。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。