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 服务器通常会在日志中记录该事务。

posted @ 2020-09-11 17:37  _大可乐  阅读(1922)  评论(0编辑  收藏  举报