Web服务器

Web服务器即Web Server(网页服务器),其就是一种软件或硬件设备,主要功能是通过HTTP协议与客户端(通常是浏览器(Browser))进行通信,来接收,存储,处理来自客户端的HTTP请求,并对该请求做出HTTP响应,返回给客户端其请求的内容或一个Error信息。

简单来说Web服务器就是用来传递网页给客户端的。

常见的Web服务器

常见的Web服务器有:Apache,Nginx,IIS,Tomcat,Jetty,Node.js,LiteSpeed等。

Web服务器工作原理

首先要通过TCP协议的三次握手建立与目标Web服务器的连接,然后HTTP协议就会生成针对目标Web服务器的HTTP请求报文,通过TCP,IP等协议发送到目标Web服务器上。HTTP协议是基于TCP协议的应用层协议,用于用户代理和服务器之间的通信,Web服务器是被动的,只有终端客户发起请求时才会响应。web服务器一般是一次请求一次回应,一问一答的工作方式:

  1. 用户代理发起资源请求,发起的通常(但不限于)是URL(统一资源标志符),发起动作类型GET/POST/DELETE/PUT等
  2. 用户代理解析URL获取目标域名,交由DNS解析(使用者通常提供的是域名或者IP:端口)
  3. 建立TCP连接完成HTTP协商(完成双方的协议、内容格式、加密等)
  4. 用户代理把请求的内容封装成HTTP数据包发送给服务器
  5. 服务器接收到资源请求后按照之前的协商解包数据
  6. 服务器将用户需要的内容打包成HTTP数据包并返回给用户,完成一次工作流程

应用层HTTP协议

HTTP通信通常发生在TCP/IP连接之上,默认使用TCP协议的80端口,过程为以下步骤:

  1. 建立连接:通过申请Socket套接字实现,用户打开一个Socket并将其绑定在端口上。
  2. 发送请求:客户端将请求发送到服务器的监听端口上完成一次请求动作。
  3. 发送响应:服务器监听请求并处理之后将响应内容消息发回客户端。
  4. 关闭连接:客户端和服务器双方关闭Socket结束TCP/IP会话。

传输层TCP协议

客户端和服务器在连接并进行数据交互过程中需要进行三次握手,断开连接则需要进行四次挥手。

  1. 服务器绑定端口&监听端口
  2. 客户端发起请求
  3. 服务器响应连接请求
  4. 建立连接
  5. 交互数据,接受或发送
  6. 关闭通信结束会话

Web服务器端

  1. TCP监听端口,以建立和用户代理之间的连接,完成连接之后,后续的HTTP请求则不再进入监听直到释放
  2. 预处理会先从TCP报文中获取HTTP请求,依据双方协商解密解包等;服务器再根据自身配置进行安全处理。
  3. 预处理URL请求动作来确定用户的资源处理方式,分配到静态或动态资源处理模块
  4. 静态资源处理模块负责检索静态资源,即HTML/JS/CSS/图片/视频等
  5. 动态资源处理模块运行业务逻辑处理,根据不同条件返回不同内容,内容形式同静态资源
  6. 后处理。与预处理类似的发送响应信息前的准备流程。
  7. 资源输出模块把响应信息封装成HTTP报文扔到TCP中。

什么是静态资源和动态资源?

静态资源和动态资源是从服务器处理信息方式或者说是响应请求内容的方式来说的。

静态资源可以简单的理解成文本、HTML、图片、JS等,内容是固定的,无需处理、无需查询数据库就可以直接发给请求者,你要什么我就给什么。

动态资源则是需要服务器程序进行处理,根据不同条件在页面也显示不同的数据,好处就是内容的更新不需要修改页面,缺点就是速度上没有静态资源响应快。客户端在获取动态资源,先将请求交给web的一个存储点,存储点链接数据库,数据库处理数据并发给服务器,服务器再发给客户端渲染展示。

版权声明:
作者:脑瓜子翁翁
链接:https://zzxxin.cn/749.html
来源:脑瓜子翁翁博客-分享技术经验的网站
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>