从tcp开始,用Python写一个web框架1
想尝试写一个web框架,不是因为Django, Flask, Sanic, tornado等web框架不香, 而是尝试造一个轮子会对框架的认识更深,为了认识更深自然不应该依赖第三方库(仅使用内置库)。 大多数写web框架的文章专注于应用层的实现,比如在wsgi接口的基础上实现web框架,这样当然是没有问题的,就是少了更底层一点的东西,比如不知道request到底怎么来的,但是我也理解如此做法,因为解析http请求实在不是太有意思的内容。 本文主要会从tcp传输开始讲起,依次介绍tcp传输,http协议的解析,路由解析,框架的实现。而且本文也不会实现模板引擎, 因为这个可以单独说一篇文章。 而其中框架的实现会分为三个阶段:单线程,多线程,异步IO。 最终的目标就是一个使用上大概类似flask, sanic的框架。 因为http的内容比较多,本文自然也不会实现http协议的所有内容。 文章目录结构如下: TCP传输 HTTP解析 路由 WEB框架 环境说明 Python: 3.6.8 不依赖任何第三方库 高于此版本应该都可以 HTTP协议 HTTP应该是受众最广的应用层协议了,没有之一。 ...