前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Web服务器做了什么以及实现一个Web服务器的难度

Web服务器做了什么以及实现一个Web服务器的难度

作者头像
zy010101
发布2022-10-28 16:34:15
7080
发布2022-10-28 16:34:15
举报
文章被收录于专栏:程序员程序员

Web服务器会做些什么?

(1) 建立连接——接受一个客户端连接,或者如果不希望与这个客户端建立连接,就将其关闭。 (2) 接收请求——从网络中读取一条 HTTP 请求报文。 (3) 处理请求——对请求报文进行解释,并采取行动。 (4) 访问资源——访问报文中指定的资源。 (5) 构建响应——创建带有正确首部的 HTTP 响应报文。 (6) 发送响应——将响应回送给客户端。 (7) 记录事务处理过程——将与已完成事务有关的内容记录在一个日志文件中。 上述的步骤如下所示:

在这里插入图片描述
在这里插入图片描述

实现一个真实的Web服务器不是一件简单的事情

首先,建立连接不是一件看起来很简单的事情。一个高性能的Web服务器能够支持上万条连接。通过这些连接,可以快速的接受客户端的请求以及返回服务器的响应。随着时代的发展,Apache服务器不再是高性能的代名词,现在的主流都变成了Nginx服务器。Nginx采用了多进程+异步非阻塞IO的方式来支持高性能。其次,是处理请求,也就是识别HTTP报文。由于HTTP是一个文本协议,看起来挺简单的,实际上HTTP协议是非常复杂的。需要服务器能够准确的解析HTTP报文。最后,Web服务器需要连接到复杂的后端应用程序上,Web 服务器要能够分辨出资源什么时候是动态的,动态内容生成程序位于何处,以及如何运行那个程序。Nginx这样的Web服务器的核心代码已经超过了10W行。因此,实现一个真正可用的Web服务器不是那么简单的一件事情。

参考资料

  1. 《HTTP权威指南》
  2. https://www.jianshu.com/p/c1c62e1af266
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-10-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Web服务器会做些什么?
    • 实现一个真实的Web服务器不是一件简单的事情
      • 参考资料
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档