HTTP通讯流程:客户端与uWSGI服务器、Django、Flask框架之间的信息交互整流程
一、整个流程:
- 客户端请求打包成HTTP的请求报文(HTTP协议格式的请求数据)
- 采用TCP传输发送给服务器端
- 服务器接受到请求报文后按照HTTP协议进行解析。
- 服务器将根据解析后的请求数据传递给业务程序(Django框架、Flask框架)
- 业务程序(Django框架、Flask框架)执行逻辑处理,形成要返回的数据交给服务器。
- 服务器根据执行后的结果封装成HTTP响应报文(HTTP协议格式的响应数据)
- 采用刚才的TCP连接将响应报文发送给客户端
- 客户端按照HTTP协议解析响应报文获取数据
二、注意点:
- 客户端不一定是浏览器,也可以是PC软件、手机APP、程序
- 根据服务器端的工作,将其分为俩部分
- 服务器: 与客户端进行TCP通讯,接受、解析、打包、发送http格式数据
- 业务程序: 根据解析后的请求数据执行逻辑处理,形成要返回的数据交给服务器
- 服务器与Python业务程序的配置使用WSGI协议
三、Web框架
Web框架: 能够被服务器调用起来,根据客户端的不同请求执行不同的逻辑处理形成要返回的数据的程序
核心: 实现路由和视图(业务逻辑处理)
框架的轻重:
- 重量级的框架:为方便业务程序的开发,提供了丰富的工具、组件,如Django
- 轻量级的框架:只提供Web框架的核心功能,自由、灵活、高度定制,如Flask、Tornado, webpy
Flask框架与Django框架对比:
Django提供了:
- django-admin快速创建项目工程目录
- manage.py 管理项目工程
- orm模型(数据库抽象层)
- admin 后台管理站点
- 缓存机制
- 文件存储系统
- 用户认证系统
而这些,flask都没有,都需要扩展包来提供