1. web服务器用来做什么?
- 接收客户端的HTTP请求,根据资源请求类型,进行静态资源和动态资源的响应
- 静态--读取本地文件发送给客户端
- 动态--通过调用应用程序让应用程序来处理
- web服务器收到处理结果将其拼接返回给浏览器
2. 为什么有了web服务器还有web应用程序框架?
- web服务器适合处理静态资源请求---固定
- 对于经常需要变化的数据,则不适合用静态资源来实现,使用web应用程序框架就可以预设逻辑对动态资源请求进行响应
- 这样的web服务器和web应用程序框架就可以各自独立开发,降低二者之间的耦合度
3. web服务器和web框架之间需要协议吗?在python中使用的是什么协议?
- 由于不同的web服务器和web框架之间可能协作方式不同 需要有协议来规定协作流程
- 在python中使用 WSGI协议
4. web服务器调用web框架的方式以及流程是什么?
- web框架提供一个app函数让web服务器调用({HTTP请求 请求头:值 路径:/index.py},start_response函数的引用)
- 对字典中的请求进行分析
- 调用start_response设置响应状态和响应头
- 返回响应体
5. web框架怎样将header返回给web服务器?
通过调用web服务器传的start_response()函数引用 调用时将header封装到第二个函数参数中传给web服务器 调用时将响应状态封装到第一个函数参数中传给web服务器 调用形式举例:start_response("状态",[(头名称,头值),(头2名称,头2值)])
6. web框架怎样将body返回给web服务器?
- app函数的返回值
7. 什么是静态资源?
一般不需要变化的数据-->存储在web服务器的硬件空间 比如图片、.js、.css
8.什么是动态资源?
经常根据用户的请求不同,产生不同的数据结果
9. 静态资源为什么不用web框架处理? 动态资源需要呢?
静态资源的处理逻辑比较简单、固定 适合使用web服务器处理 如果web框架还处理静态资源请求就会造成响应更慢 动态资源的处理逻辑往往比较复杂 需要用户根据业务涉及处理规则编写应用程序来处理
10. web服务器在调用web框架的时候,为什么要传递一个字典?里面有什么?
字典的查询效率比较高----可以根据key快速查询出values 字典中存储的是所有跟用户请求相关的数据
11. web服务器在调用web框架的时候,为什么要传递一个函数的引用?
- 函数的作用是 ----- 在web框架接收到请求并进行相应
- 通过这个函数引用调用 将响应状态和响应头发给web服务器