首页
学习
活动
专区
圈层
工具
发布

Python中的网关:WSGI

从web.py、Flask、Django之中,可见一斑。 今天,我们简单聊一聊在这些框架背后共同使用的网关通信技术——WSGI。...没错,Python同样支持CGI接口编程,但如前文所述CGI之某些缺点,Python开发了自己的网关通信技术(当然Python本身也支持CGI)。...应用皆回调 收益于Python这门脚本语言。我们在编写WSGI程序的时候,只将具体的处理逻辑def成函数,然后将该函数作为回调(callback)传入WSGI的server循环程序之中即可。...和CGI一样,通常情况下我们需要显示控制的HTTP头部的输出,就是200(正常返回)和301/302(重定向)这两种情况。因为类似404或者502之类的异常错误码,Web服务器肯定会自动抛出的。...看出来了吧,这是和CGI的一大不同:CGI是将所有响应内容(头部和实体)都作为标准输出,通过web服务器的重定向返回给客户端。而WSGI的做法,头部响应和实体响应分离,并且不需要向标准输出去输出内容。

1.4K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    HTTP报错序号以及对应错误原因最全总结(1XX、2XX、3XX、4XX、5XX)

    · 206 - montent 客户发送了一个带有Range头的GET请求(分块请求),服务器完成了它(HTTP 1.1新)。 3xx - 重定向 客户端浏览器必须采取更多操作来实现请求。...· 302 - Found 类似于301,但新的URL应该被视为临时性的替代,而不是永久性的。注意,在HTTP1.0中对应的状态信息是“Moved Temporatily”。...注意这个状态代码有时候可以和301替换使 用。例如,如果浏览器错误地请求 http://host/~user (缺少了后面的斜杠),有的服务器返回301,有的则返回302。...· 303 - See Other 类似于301/302,不同之处在于,如果原来的请求是POST,Location头指定的重定向目标文档应该通过GET提取(HTTP 1.1新)。...许多浏览器会错误地响应302应答进行重定向,即使原来的请求是POST,即使它实际上只能在POST请求的应答是303时 才能重定向。

    1K10

    ⚡3分钟⚡熟悉面试常问状态码,面试官都听呆了

    · 302 - Found 类似于301,但新的URL应该被视为临时性的替代,而不是永久性的。注意,在HTTP1.0中对应的状态信息是“Moved Temporatily”。...注意这个状态代码有时候可以和301替换使 用。例如,如果浏览器错误地请求 http://host/~user (缺少了后面的斜杠) ,有的服务器返回301,有的则返回302。...· 303 - See Other 类似于301/302,不同之处在于,如果原来的请求是POST,Location头指定的重定向目标文档应该通过GET提取(HTTP 1.1新)。...许多浏览器会错误地响应302应答进行重定向,即使原来的请求是POST,即使它实际上只能在POST请求的应答是303时 才能重 定向。...· 504 - Gateway Timeout 网关超时,由作为代理或网关的服务器使用,表示不能及时地从远程服务器获得应答。(HTTP 1.1新) 。

    2.2K20

    Ajax Status请求状态

    206 - Partial Content 客户发送了一个带有Range头的GET请求,服务器完成了它(HTTP 1.1新)。 3xx - 重定向 客户端浏览器必须采取更多操作来实现请求。...302 - Found 类似于301,但新的URL应该被视为临时性的替代,而不是永久性的。注意,在HTTP1.0中对应的状态信息是“Moved Temporatily”。...注意这个状态代码有时候可以和301替换使用。例如,如果浏览器错误地请求http://host/~user (缺少了后面的斜杠),有的服务器返回301,有的则返回302。...303 - See Other 类似于301/302,不同之处在于,如果原来的请求是POST,Location头指定的重定向目标文档应该通过GET提取(HTTP 1.1新)。...许多浏览器会错误地响应302应答进行重定向,即使原来的请求是POST,即使它实际上只能在POST请求的应答是303时才能重定向。

    2.3K10

    一次奇怪的http状态码改变

    = 308 tests/test_hello.py:18: AssertionError 按照python系的习惯,一般而言,我们习惯在接口最后加上一个slash,因此会将所有不带slash的接口301...如果仍然有人需要支持非常老的浏览器,则可以修改RequestRedirect.code = 301支持301重定向 由/a重定向到/a/并不会改变method,301和308对于多数人没有什么影响 相关...HTTP 302 Found 临时重定向:请求的资源现在临时从不同的 URI 响应请求。由于这样的重定向是临时的,客户端应当继续向原有地址发送以后的请求。...这个方法的存在主要是为了允许由脚本激活的POST请求输出重定向到一个新的资源。...但是已经被弃用了 HTTP 307 Temporary Redirect 临时重定向且不能修改之后的请求方法,302的扩充 HTTP 308 Permanent Redirect 永久重定向且不能修改之后的请求方法

    1K41

    2024全网最全面及最新且最为详细的网络安全技巧五 之 SSRF 漏洞EXP技巧,典例分析以及 如何修复 (下册)———— 作者:LJS

    利用30X重定向 可以使用重定向来让服务器访问目标地址,可用于重定向的HTTP状态码:300、301、302、303、305、307、308。...**部署代码**:将你的302重定向代码上传到VPS中,可以通过FTP、SCP或者Git等方式上传到VPS的合适目录中,通常是Web服务器的根目录或者虚拟主机目录下。 5....**配置Web服务器**:如果你使用的是Apache、Nginx等Web服务器,确保配置正确的重定向规则,以便访问VPS时能够正确执行302重定向。 6....**测试和调试**:完成部署后,通过浏览器或者curl命令等方式测试你的302重定向是否正确工作。确保访问VPS时能够成功跳转到内网中指定的地址。 7....CGI 解释器进程完成处理后将标准输出和错误信息从同一连接返回 Web 服务器 CGI 解释器进程接着等待并处理来自 Web 服务器的下一个连接 由此,PHP-FPM 就是一个FastCGI进程管理器

    35710

    重新认识HTTP3xx重定向机制

    而网宿对日志下载的接口搞得很复杂,又没有提供相应的sdk,只是提供了一个shell脚本,虽然在ubuntu上使用很方便,但是脚本里面的各种重定向分析非常复杂。故此想对重定向在深入了解一点。...wskey=3772006094880e8300a73cc2c59006bfeea33ae00d9da"}]}]} 脚本的调用过程是根据参数一步一步的进行302重定向,重定向时会依赖于参数,每次重定向依赖的参数都不相同...如果你想把自己的网站永久更改为一个新的域名,则应该使用301永久重定向,搜索引擎机器人会在遇到该状态码时触发更新操作,在其索引库中修改与该资源相关的 URL 。...HTTP重定向的使用 主要以Python和shell两种语言来介绍http重定向的使用。 Python Python常用的http库urllib,urllib2,requests都支持http重定向。...所以通过抓包可以清晰的看到302跳转的过程 参考: csdn-curl命令的常见参数使用 mozilla-HTTP 的重定向

    61821

    HTTP响应状态码:除了404,还有啥?

    · 206 - Partial Content 客户发送了一个带有Range头的GET请求(分块请求),服务器完成了它。 3xx - 重定向 客户端浏览器必须采取更多操作来实现请求。...· 302 - Found 类似于301,但新的URL应该被视为临时性的替代,而不是永久性的。注意,在HTTP1.0中对应的状态信是“Moved Temporatily”。...注意这个状态代码有时候可以和301替换使 用。有的服务器返回301,有的则返回302。严格地说,我们只能假定只有当原来的请求是GET时浏览器才会自动重定向。请参见307。...· 303 - See Other 类似于301/302,不同之处在于,如果原来的请求是POST,Location头指定的重定向目标文档应该通过GET提取。...许多浏览器会错误地响应302应答进行重定向,即使原来的请求是POST,即使它实际上只能在POST请求的应答是303时 才能重定向。

    2.4K20

    301跳转与302有什么区别

    基本跟 302 一致,所以市面很少用 303,都是使用 302. 304,告诉浏览器,所请求的内容距离上次访问并没有变化。 可以直接从浏览器缓存里获取该资源。...307,为了补充 302.重定向必须使用原请求的方法和包体访问。 三、 301重定向与302跳转的区别 1.不同的使用效果 301重定向是一种永久重定向,而302跳转是暂时的跳转。...就比如说,我们访问 http://www.baidu.com ,网站页面会跳转到 https://www.baidu.com,发送请求之后,就会返回301状态码,然后返回一个位置以提示新地址,浏览器就会访问这个新地址...因此,我们规范化网站URL的常用的方法是使用301重定向,而不是302跳转。...因此,301跳转比302跳转更可靠,同时也保障了服务器的性能。 可见,301重定向的使用对搜索引擎更加友好,因此建议尽量使用301进行跳转。

    2.6K30

    Nginx中优化FastCGI配置

    FastCGI:   FastCGI是从CGI发展改进而来的。...传统CGI接口方式的主要缺点是性能很差,因为每次HTTP服务器遇到动态程序时都需要重新启动脚本解析器来执行解析,然后结果被返回给HTTP服务器。这在处理高并发访问时,几乎是不可用的。...当Nginx将CGI请求发送给这个socket的时候,通过FastCGI接口,wrapper接纳到请求,然后派生出一个新的线程,这个线程调用解释器或者外部程序处理脚本并读取返回数据;接着,wrapper...再将返回的数据通过FastCGI接口,沿着固定的socket传递给Nginx;最后,Nginx将返回的数据发送给客户端,这就是Nginx+FastCGI的整个运作过程。...fastcgi_cache_valid、fastcgi用来指定应答代码的缓存时间,实例中的值表示将200和302应答缓存一个小时,将301应答缓存1天,其他应答均缓存1分钟。

    1.6K00

    nginx之FastCGI配置优化

    FastCGI是从CGI发展改进而来的。传统CGI接口方式的主要缺点是性能很差,因为每次HTTP服务器遇到动态程序时都需要重新启动脚本解析器来执行解析,然后结果被返回给HTTP服务器。...另外传统的CGI接口方式安全性也很差,现在已经很少被使用了。...当Nginx将CGI请求发送给这个socket的时候,通过FastCGI接口,wrapper接纳到请求,然后派生出一个新的线程,这个线程调用解释器或者外部程序处理脚本并读取返回数据;接着,wrapper...再将返回的数据通过FastCGI接口,沿着固定的socket传递给Nginx;最后,Nginx将返回的数据发送给客户端,这就是Nginx+FastCGI的整个运作过程。...(11)fastcgi_cache_valid、fastcgi用来指定应答代码的缓存时间,实例中的值表示将200和302应答缓存一个小时,将301应答缓存1天,其他应答均缓存1分钟。

    2.4K30

    前端高频面试题(五)(附答案)

    同时,搜索引擎在抓取新内容的同时也将旧的网址替换为重定向之后的网址。使用场景:当我们想换个域名,旧的域名不再使用时,用户访问旧域名时用301就重定向到新的域名。...在搜索引擎的搜索结果中出现了不带www的域名,而带www的域名却没有收录,这个时候可以用301重定向来告诉搜索引擎我们目标的域名是哪一个。(2)302 Found临时重定向。...和 301 Moved Permanently 状态码相似,但是 302 代表的资源不是被永久重定向,只是临时性质的。也就是说已移动的资源对应的 URI 将来还有可能发生改变。...注意:当 301、302、303 响应状态码返回时,几乎所有的浏览器都会把 POST 改成GET,并删除请求报文内的主体,之后请求会再次自动发送。...301、302 标准是禁止将 POST 方法变成 GET方法的,但实际大家都会这么做。(4)304 Not Modified浏览器缓存相关。

    83121

    HTTP 状态码 301 与 302 的区别

    301 和 302 有啥区别 301 Moved Permanently,永久重定向。被请求资源已永久移动到新位置,并且将来任何对该资源的引用都使用本响应返回的若干个 URI 之一。...注意:对于某些使用 HTTP/1.0 协议的浏览器,当它们发送的 POST 请求得到了一个 301 响应的话,接下来的重定向请求将会变成 GET 方式。...由于这样的重定向是临时的,客户端应继续向原有地址发送以后的请求,只有在 Cache-Control 或 Expires 中进行了指定的情况下,这个响应才是可缓存的。...301 和 302 相同点 都表示资源重定向。 新的 URI 地址都是在响应的 Location 中返回。...对其进行访问的时候就首先发生了 302 重定向。 使用时机 由于 301 重定向是永久的重定向,搜索引擎在抓取新内容的同时也将旧的网址替换为重定向之后的网址。

    2.3K21

    Http状态码之:301、302重定向

    注意:对于某些使用HTTP/1.0协议的浏览器,当它们发送的POST请求得到了一个301响应的话,接下来的重定向请求将会变成GET方式。...302 Found 请求的资源现在临时从不同的URI响应请求。由于这样的重定向是临时的,客户端应当继续向原有地址发送以后的请求。...301是说访问的资源已经永久删除啦,客户端要根据新的URI访问重定向;而302的意思就是说访问的资源可能暂时先用location的URI访问,但旧资源还在的,下次你再来访问的时候可能就不用重定向了。...在用户访问后浏览器都会重定向到http://127.0.0.1/login.htm 301与302在选择上注意的问题 302 重定向和网址劫持(URL hijacking) 从网址A 做一个302 重定向到网址...是说除非真是临时重定向使用302,其他的情况最好还是使用301吧 参考资料 HTTP状态码 https://zh.wikipedia.org/wiki/HTTP状态码 http状态码301和302详解及区别

    5.2K51
    领券