####WEB的本质
web 应用就是一个通过网页来实现与用户交互的一个程序。
它的流程上大概就分为以下4点:
- 1:浏览器发送一个 HTTP 请求
- 2:服务器收到请求,生成一个HTML文档
- 3:服务器把HTML文档作为HTTP响应的Body发送给浏览器
- 4:浏览器收到HTTP响应,从HTTP Body取出HTML文档并显示
web应用就是通过HTTP服务器接收到用户请求后将自己的网页文件或模板返回给用户。
关于 底层的TCP连接与,HTTP原始请求和响应格式则是通过一个统一的接口来实现的:wsgi
WSGI接口定义非常简单,它只要求Web开发者实现一个函数,就可以响应HTTP请求。比如我们来用wsgi接口来实现一个简单的web页面:
# wsgi_demo.py
#定义一个具体的处理函数
def application(env, start_response):
start_response('200 ok',[('Content-Type', 'text/html')])
return 'hello world!'
上面的函数就是一个接收到HTTP请求的处理函数,它的两个参数分别是:
- env:包含此次http请求的所有信息的dict对象
- start_response: 负责返回http响应的函数
接下来在写一个负责监控http请求的服务程序:
# wsgi_server.py
from wsgiref.simple_server import make_server
from wsgi_demo import application
httpd = make_server('',8000,application)
print "Serving is running..."
http.serve_forever()
这两个文件应在同一目录下,因为第二个程序需要调用第一个。
第二个程序是创建一个监听8000端口http请求的wsgi服务器,执行 python wsgi_server.py 来启动它,然后在浏览器中访问 localhost:8000
这时候就可以看见页面中具有我们设置的 hello world 页面了。
感兴趣的可以将 application中的env参数打印出来看一看都包含什么