当前位置: 首页 > 后端技术 > Python

Python中的WSGI接口和WSGI服务

时间:2023-03-25 23:43:07 Python

HTTP格式HTTPGET请求格式:GET/pathHTTP/1.1Header1:Value1Header2:Value2Header3:Value3每个Header为一行,换行符为\r\n。HTTPPOST请求的格式:POST/pathHTTP/1.1Header1:Value1Header2:Value2Header3:Value3bodydatagoeshere...当遇到两个连续的\r\n时,Header部分结束,后面的数据都是Body。HTTP响应的格式:200OKHeader1:Value1Header2:Value2Header3:Value3bodydatagoeshere...如果HTTP响应包含body,也用\r\n\r\n分隔。需要注意的是,Body的数据类型是由Content-Type头决定的。如果是网页,Body就是文本,如果是图片,Body就是图片的二进制数据。当有Content-Encoding时,Body数据被压缩,最常见的压缩方式是gzip。WSGI接口WSGI:WebServerGatewayInterface。WSGI接口定义非常简单,只需要实现一个功能,就可以响应HTTP请求。#hello.pydefapplication(environ,start_response):start_response('200OK',[('Content-Type','text/html')])body='

Hello,%s!

'%(environ['PATH_INFO'][1:]or'web')return[body.encode('utf-8')]函数接收两个参数:environ:包含所有HTTP请求信息的dict对象;start_response:发送HTTP响应的函数。运行WSGI服务Python有一个内置的WSGI服务器。这个模块叫做wsgiref,它是一个用纯Python编写的WSGI服务器的参考实现。#server.pyfromwsgiref.simple_serverimportmake_serverfromhelloimportapplication#创建服务器,IP地址为空,端口为8000,处理函数为application:httpd=make_server('',8000,application)print('ServingHTTPonport8000...')#开始监听HTTP请求:httpd.serve_forever()在命令行输入pythonserver.py,启动WSGI服务器。启动成功后,打开浏览器输入http://localhost:8000/就可以看到结果了。按Ctrl+C终止服务器。