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服务器的硬盘空间
比如 .png .js .css
8. 什么是动态资源?
经常根据用户的请求方式或时间不同 产生的不同的数据结果
9. 静态资源为什么不用web框架处理? 动态资源需要呢?
静态资源的处理逻辑比较简单、固定 适合使用web服务器处理 如果web框架还处理静态资源请求就会造成响应更慢。
动态资源的处理逻辑往往比较复杂 需要用户根据业务涉及处理规则编写应用程序来处理。
10. web服务器在调用web框架的时候,为什么要传递一个字典?里面有什么?
字典的查询效率比较高------- 可以根据key快速查询出values
字典中存储的是所有跟用户请求相关的数据。
11. web服务器在调用web框架的时候,为什么参数里要传递一个函数的引用?
函数的作用是 ----- 在web框架接收到请求并进行响应 -- 通过这个函数引用调用 将响应状态和响应头发给web服务器
12 给框架设置端口是怎么设置的? 格式是什么? 或者说命令行设置端口或者说终端
设置: import sys
len(sys.argv)==number
port = sys.argv[1] 取得端口号
格式是: python3 文件名.py 端口号 模块名:函数名
python3 [web.py 9999 module :app]
[0 ,1 2 ]