作家
登录

如何实现一个Web Server

作者: 来源: 2017-12-12 17:12:27 阅读 我要评论

其他

在开辟 Vino 的过程中,还有很多须要推敲和衡量的处所。响应请求时,如不雅用户请求的是一个很大年夜的文件,导致写缓冲区满,我们若何更好的设计响应缓冲区?若何更高效的设计底层数据构造(如字符串、链表、小顶堆等)?若何更优雅的解析敕令行参数?若何对特定旌旗灯号进行处理?若何更结实的处理缺点信息?现代码的数量达到必定程度后,若何更快的定位异常代码?

Vino 的开辟 & 重构临时告一段落,源码放在了 GitHub 上。当然,Vino 还有很多不足之处,以及未实现的特点。

  • 仅支撑 HTTP GET 办法,暂不支撑其他 HTTP method。
  • 暂不支撑动态请求的处理。
  • 支撑的 HTTP/1.1 特点有限。
  • ...

写这篇文┞仿,欲望对初学者有所赞助。

【编辑推荐】

  1. Liquid inside 开启将来 中科曙光液冷办事器实现大年夜范围安排
  2. 稳筑新经济基石 加快实现数字化转型
  3. 英特尔10nm FPGA 加快实现扶植智能互联世界
  4. 戴尔机架式基本举措措施加快实现价值
  5. UPS长途监控体系的设计与实现
【义务编辑:武晓燕 TEL:(010)68476606】

如不雅一个请求在建立连接后迟迟没有发送数据,或者对方忽然断电,应当若何处理?我们须要实现准时器来处理超时的请求。Vino 准时器的实现参考了 Nginx 的设计,Nginx 应用一颗红黑树来存储各个准时事宜,每次事宜轮回时大年夜红黑树中赓续找出最小(早)的事宜,如不雅超时则触发超时处理。为了简化实现,在 Vino 中,我实现了一个小顶堆来存储准时事宜,如不雅被处理的准时事宜同时支撑长连接,那么在该请求处理完毕后会更新该请求对应的准时器,也就是从新计时。准时器相干代码见 vn_event_timer.h 和 vn_event_timer.c。



  推荐阅读

  分布式高并发缓存设计系统

分布式内存缓存分布式体系,具备故障主动恢复功能,无单点故障问题,稳定性佳好,支撑程度扩大好,对营业层供给通用接口,后端具体的缓存应用对营业透明代码侵人道一般,须要惹人通用的api平日有收集操作。 >>>详细阅读


本文标题:如何实现一个Web Server

地址:http://www.17bianji.com/lsqh/39720.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)