wsgi-mini-web框架的实现-1

2018-06-09  本文已影响0人  潇潇雨歇_安然

1. 概述

首先给大家看一张图:


服务器请求动态页面过程.png

这张图是服务器请求动态页面的一个过程,通过这张图,我们可以看到,我们的服务器和web框架是通过一个叫做wsgi建立连接的,那么什么是wsgi呢?
wsgi(Web Server Gateway Interface),web服务网关接口,它允许开发者将选择web框架和web服务器分开,可以混合匹配web服务器和web框架,选择一个适合的配对。
web服务器必须具备WSGI接口,所有的现代Python Web框架都已具备WSGI接口,它让你不对代码作修改就能使服务器和特定的web框架协同工作。

2. WSGI接口

wsgi接口定义非常简单,它只要求Web开发者实现一个函数,就可以响应HTTP请求。我们来看一个最简单的Web版本的“Hello World!”:

def application(environ, start_response):
    start_response('200 OK', [('Content-Type', 'text/html')])
    return 'Hello World!'

上面的application()函数就是符合WSGI标准的一个HTTP处理函数,它接收两个参数:
-- environ:一个包含所有HTTP请求信息的dict对象;
-- start_response:一个发送HTTP响应的函数。
整个application()函数本身没有涉及到任何解析HTTP的部分,也就是说,把底层web服务器解析部分和应用程序逻辑部分进行了分离,这样开发者就可以专心做一个领域了。
application()函数必须由WSGI服务器来调用。有很多符合WSGI规范的服务器。而我们此时的web服务器项目的目的就是做一个既能解析静态网页还可以解析动态网页的服务器。

3. 伪静态、静态和动态url

3.1. 静态URL

静态URL类似 域名/news/2012-5-18/110.html 我们一般称为真静态URL,每个网页有真实的物理路径,也就是真实存在服务器里的。

3.2. 动态URL

动态URL类似 域名/NewsMore.asp?id=5 或者 域名/DaiKuan.php?id=17,带有?号的URL,我们一般称为动态网址,每个URL只是一个逻辑地址,并不是真实物理存在服务器硬盘里的。

3.3. 伪静态URL

伪静态URL类似 域名/course/74.html 这个URL和真静态URL类似。他是通过伪静态规则把动态URL伪装成静态网址。也是逻辑地址,不存在物理地址。

上一篇 下一篇

猜你喜欢

热点阅读