博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WSGI学习总结
阅读量:3513 次
发布时间:2019-05-20

本文共 1159 字,大约阅读时间需要 3 分钟。

1. 背景

进行web开发时一般是使用各种web框架。很久之前我去探寻web开发原理时随手做的一些笔记,现在抽空整理出来,希望可以对一些人理解wsgi时能够有所帮助。

2. Web编程

做web编程之前先了解两个名词"HTML"、"HTTP"

HTML

HTML全称为HyperText Markup Language,超文本标记语言,也就是常说的网页。如果连这个东西都没有听说过,了解后再做web编程。

HTTP

HTTP的全称为HyperText Transfer Protocol,超文本传输协议,是一种使用较为广泛的网络协议。从字面意思基本能够看出,HTTP是用来传输超文本。如果对HTTP协议不了解。

实际上,在web应用中,服务器把网页内容(HTML)传输给浏览器,让浏览器来展示,而浏览器和服务器之间的协议就是使用的HTTP。

所以我把整个web应用的流程大体分为四步:

1. 浏览器发送一个http请求

2. 服务器收到请求,生成一个html文档
3. 服务器把html文档作为http响应的body发送给浏览器
4. 浏览器收到http响应,从http body中取出html文档并显示

3. WSGI

早期的web开发,都是事先将静态的html保存好,用现成的http服务器软件,接受用户请求从文件中读取html返回到浏览器。Nginx、Apache、lighttpd这些常见的静态服务器就是干这件事情的。

而现在的web开发,由早已将静态编写HTML改为动态生成HTML,那么我们就需要对HTTP的请求加以解析,并HTTP协议响应,如果我们自己来写这些底层代码,需要花个把月去读HTTP规范。
作为web开发者,我们希望的是不对底层的HTTP协议自己来做解析,而是只专注于做web的开发。
所以正确的做法是底层代码由专门的服务器软件实现,我们用Python专注于生成HTML文档。需要一个统一的接口,让我们专心用Python编写Web业务。
这个接口就是WSGI:Web Server Gateway Interface。(Web服务网关接口)

WSGI总体分为三大部分

  • 应用程序
  • 服务器程序
  • 中间件

应用程序

接收请求消息,并根据请求消息做出相应的逻辑,动态生成响应信息。

服务器程序

接收应用程序的响应信息,并将响应信息返回给代理服务器。

中间件

服务器程序与应用程序的桥,并非必须,类似于一个路由,根据服务器收到的浏览器请求,映射到不同的应用程序。

这里只是把我对WSGI的理解做了一些整理,对于具体的细节实现有很多人都已经写的非常完美了,如果大家有兴趣的话,可以拉到最后,到参考资料中的几个我认为写的比较好的网址去看一看,可以加深了解。

4. 参考资料

参考资料【1】:

参考资料【2】:

转载地址:http://zbbqj.baihongyu.com/

你可能感兴趣的文章
分布式文件系统FastDfs的搭建
查看>>
Springboot项目利用Java客户端调用FastDFS
查看>>
全文检索工具elasticsearch的安装和简单介绍
查看>>
利用Kibana学习全文检索工具elasticsearch
查看>>
SpringBoot在Test测试类或自定义类中通过@Autowired注入为null
查看>>
使用docker搭建YAPI服务
查看>>
西南科技大学OJ题 邻接表到邻接矩阵1056
查看>>
西南科技大学OJ题 有向图的出度计算1057
查看>>
西南科技大学OJ题 有向图的最大出度计算1059
查看>>
西南科技大学OJ题 带权有向图计算1063
查看>>
oracle主键自增触发器编写
查看>>
String与StringBuilder与StringBuffer三者的差别
查看>>
各种IO流之间的关系和区别
查看>>
SSM如何实现上传单图片
查看>>
SSM环境下java如何实现语音识别(百度语音识别版)
查看>>
ajax方法参数的用法和他的含义
查看>>
数据库基础技巧及用法
查看>>
实用方法:无request参数时获得当前的request的方法
查看>>
JS操作数组常用实用方法
查看>>
java实现MD5多次进行加密加盐操作
查看>>