其他
在开辟 Vino 的过程中,还有很多须要推敲和衡量的处所。响应请求时,如不雅用户请求的是一个很大年夜的文件,导致写缓冲区满,我们若何更好的设计响应缓冲区?若何更高效的设计底层数据构造(如字符串、链表、小顶堆等)?若何更优雅的解析敕令行参数?若何对特定旌旗灯号进行处理?若何更结实的处理缺点信息?现代码的数量达到必定程度后,若何更快的定位异常代码?
Vino 的开辟 & 重构临时告一段落,源码放在了 GitHub 上。当然,Vino 还有很多不足之处,以及未实现的特点。
- 仅支撑 HTTP GET 办法,暂不支撑其他 HTTP method。
- 暂不支撑动态请求的处理。
- 支撑的 HTTP/1.1 特点有限。
- ...
写这篇文┞仿,欲望对初学者有所赞助。
【编辑推荐】
- Liquid inside 开启将来 中科曙光液冷办事器实现大年夜范围安排
- 稳筑新经济基石 加快实现数字化转型
- 英特尔10nm FPGA 加快实现扶植智能互联世界
- 戴尔机架式基本举措措施加快实现价值
- UPS长途监控体系的设计与实现
如不雅一个请求在建立连接后迟迟没有发送数据,或者对方忽然断电,应当若何处理?我们须要实现准时器来处理超时的请求。Vino 准时器的实现参考了 Nginx 的设计,Nginx 应用一颗红黑树来存储各个准时事宜,每次事宜轮回时大年夜红黑树中赓续找出最小(早)的事宜,如不雅超时则触发超时处理。为了简化实现,在 Vino 中,我实现了一个小顶堆来存储准时事宜,如不雅被处理的准时事宜同时支撑长连接,那么在该请求处理完毕后会更新该请求对应的准时器,也就是从新计时。准时器相干代码见 vn_event_timer.h 和 vn_event_timer.c。
推荐阅读
分布式内存缓存分布式体系,具备故障主动恢复功能,无单点故障问题,稳定性佳好,支撑程度扩大好,对营业层供给通用接口,后端具体的缓存应用对营业透明代码侵人道一般,须要惹人通用的api平日有收集操作。 >>>详细阅读
本文标题:如何实现一个Web Server
地址:http://www.17bianji.com/lsqh/39720.html
1/2 1