美文网首页
WSGI--python web服务器接口

WSGI--python web服务器接口

作者: Cassie测试路 | 来源:发表于2020-08-19 17:47 被阅读0次

WSGI简介

WSGI:Web Server Gateway Interface是python web服务器网关接口。python程序只需要通过WSGI接口就可以创建一个web服务器,用于建立TCP连接、接收客户端的HTTP请求、解析HTTP请求、然后发送HTTP响应给客户端。这样开发者不用关注底层实现,只需要专注于生成的HTML内容即可。

  • WSGI 没有官方的实现, 因为WSGI更像一个协议. 只要遵照这些协议,WSGI应用(Application)就可以在任何服务器(Server)上运行, 反之亦然。WSGI标准被许多框架实现,其中包括现广泛使用的django框架。

  • WSGI是作为Web服务器与Web应用程序或应用框架之间的一种低级别的接口,以提升可移植Web应用开发的共同点。WSGI是基于现存的CGI标准而设计的。

WSGI接口编程

  • 处理HTTP请求,发送HTTP响应给客户端
# wsgi_application.py
# application()函数就是符合WSGI标准的一个HTTP处理函数,它接收两个参数:
# environ:一个包含所有HTTP请求信息的dict对象;
# start_response:一个发送HTTP响应的函数。
# start_response()发送响应头,函数的返回值b'<h1>Hello, web!</h1>'将作为HTTP响应的Body发送给浏览器

def application(environ, start_response):
    start_response("200 OKKK", [('Content-Type', 'text/html')])
    response_body = '<h1>Hello, %s!</h1>' % (environ['PATH_INFO'][1:] or 'web')
    # return [b'<h1>Hello, web!</h1>']
    return [response_body.encode('utf-8')]
  • 通过WSGI接口创建web服务器,接收HTTP请求
# wsgi_server.py
# web服务器接收HTTP请求
from wsgiref.simple_server import make_server
from wsgi_application import application

# 创建一个web服务器,IP地址为空,端口是8000,处理请求的函数是application
httpd = make_server('', 8000, application)
print('Server HTTP on port 8000...')

# 监听请求
httpd.serve_forever()
  • 启动web服务器:python wsgi_server.py,然后浏览器中输入请求地址回车,查看Network:
HTTP请求
  • 备注:每一次更改application函数之后都要重启wsgi_server才生效,即使application和wsgi_server在同一个文件中仍然要重启服务器之后才生效
  • 备注2:Django、Flask这些框架已经封装了wsgi,nginx这种是代理服务器,通常我们用uwsgi去处理程序内部的逻辑请求,用nginx去处理静态文件。
  • 例如:下图的Django本地开发项目,启动服务器后,浏览器发起请求即可看到处理该请求的Server: WSGIServer/0.2 CPython/3.6.
Django框架封装的wsgi服务器
  • 下图是Flask本地开发项目,启动服务器后,浏览器发起请求即可看到处理该请求的Server: Werkzeug/1.0.1 Python/3.6.5


    Flask框架封装的服务器

相关文章

  • WSGI--python web服务器接口

    WSGI简介 WSGI:Web Server Gateway Interface是python web服务器网关接...

  • WSGI

    简介 Web服务器网关接口(WSGI)是用于Python编程语言的Web服务器(Web Server)和Web应用...

  • 1. Flask基础知识

    1. Flask的web服务器 1)WSGI Python Web服务器网关接口(Python Web Serve...

  • Flask Web开发笔记

    Flask笔记 2.1初始化 Web 服务器使用一种名为 Web 服务器网关接口(Web Server Gatew...

  • wsgiref 源码阅读

    介绍 Web 服务器网关接口(WSGI)是 Web 服务器软件和用 Python 编写的 Web 应用程序之间的标...

  • WSGI

    全称为Web Server Gateway Interface,即 Web服务器网关接口。是一种标准接口规范,规定...

  • 一些常识

    1.Python Web服务器网关接口(Python Web Server Gateway Interface,简...

  • wsgi 与 asgi

    什么是wsgi Web服务器网关接口(Python Web Server Gateway Interface,缩写...

  • cgi、fastcgi、php-cgi、php-fpm剖析

    定义 cgi 通用网关接口,外部程序与web服务器之间的接口标准,是在cgi程序和web服务器之间传递信息的过程 ...

  • WSGI,uwsgi, uWSGI理解

    WSGI 全称:Web Server Gateway Interface 翻译过来就是Web服务器网关接口;WSG...

网友评论

      本文标题:WSGI--python web服务器接口

      本文链接:https://www.haomeiwen.com/subject/fhsjdktx.html