12.python面试之网络编程

你现在已经学会了写python代码,假如你写了两个python文件a.py和b.py,分别去运行,你就会发现,这两个python的文件分别运行的很好。但是如果这两个程序之间想要传递一个数据,你要怎么做呢?

简述浏览器通过WSGI请求动态资源的过程?

浏览器发送的请求被Nginx监听到,Nginx根据请求的URL的PATH或者后缀把请求静态资源的分发到静态资源的目录,别的请求根据配置好的转发到相应端口。

实现了WSGI的程序会监听某个端口,监听到Nginx转发过来的请求接收后(一般用socket的recv来接收HTTP的报文)以后把请求的报文封装成environ 的字典对象,然后再提供一个start_response 的方法。把这两个对象当成参数传入某个方法比如wsgi_app(environ, start_response) 或者实现了__call__(self, environ, start_response) 方法的某个实例。这个实例再调用start_response,返回给实现了WSGI的中间件,再由中间件返回给Nginx。