面试题4.12

# 面试题: 1 wsgi uwsgi uWSGI,cgi,fastcgi 分别是什么? 2 如何自定制上下文管理器 3 Python是值传递还是引用传递
wsgi uwsgi uWSGI,cgi,fastcgi 分别是什么?
中间件:介于a和b之间的东西都称为中间件 ''' 服务器中间件:nginx,apache 数据库中间件:介于应用程序和数据库之间的:MyCat 消息队列中间件:kafka,rabbitmq,Rocketmq '''
CGI:通用网关接口(Common Gateway Interface/CGI),CGI描述了服务器(Nginx,Apache)和请求处理程序(django,flask,web框架)之间传输数据的一种标准。 ''' 所有的bs架构软件都是遵守CGI协议的 总结:CGI是一个标准,定义了客户端服务器之间如何传数据的 '''
FastCGI:快速通用网关接口(Fast Common Gateway Interface/FastCGI)是一种让交互程序与web服务器通信的协议。FastCGI是CGI的增强版。 # FastCGI致力于减少网页服务器与CGI程序之间互动开销,从而是服务器可以同时处理更多的网页请求 ''' 常见的FastCGI服务器:Apache ,Nginx,Microsoft IIS 总结:FastCGI是CGI的增强版。 '''
WSGI:Python Web Server Gateway Interface,缩写为WSGI,Python定义的web服务器和web应用程序或框架之间的一种通用的接口 '''总结:为Python定义的web服务器和web框架之间的接口标准'''
uWSGI:符合wsgi协议的web服务器,用c语言写的,性能比较高,咱们通常用来部署django,flask '''总结:一个web server,即一个实现WSGI协议的服务器,处理发来的请求及返回响应'''
uwsgi:uWSGI服务器实现的独有的协议,用于定义传输信息的类型,是用于前端服务器与uwsgi的通信规范 ''' uwsgi是uWSGI自有的一个协议 uWSGI:web服务器,等同于wsgiref uwsgi:uWSGI自有的一个协议 ''' # nginx 是一个符合 fastcgi 协议的软件,处于浏览器和web程序之间,主要做请求转发和负载均衡,也可以称之为服务器中间件
web 服务器、服务器中间件到底是什么?
客户端(浏览器,APP)跟服务端(web框架)之间的东西,叫做服务器中间件,也叫web服务器。 web服务器有: # nginx,apache 是一类东西,就是做请求转发的 # uWSGI,gunicorn 只针对于Python的web框架 # tomacat,jboss,webloogic 只针对Java的web框架
符合WSGI协议的web服务器
# 符合WSGI协议的web服务器 wsgiref,werkzeug(一个是符合wsgi协议的web服务器+工具包(封装了一些东西)) uWSGI 用c语言写的,性能比较高 gunicorn:python写的 tornado:也可以部署django项目
如何自定制上下文管理器
上下文管理器的用处:程时经常要处理的路径问题,通常程序工作在一个目录,但是过程中要去另一个目录处理一些文件,处理完还要切换回原目录,这就需要不停的调用 os.chdir。为了更便捷就有了上下文管理器(contextlib)
# 一个对象如果实现了__enter__和__exit__方法,那么这个对象就支持上下文管理,即with语句 # 上下文管理协议适用于那些进入和退出之后执行一些代码的场景,比如文件、网络连接、数据库连接或使用锁,使用事务的编码场景等 # 如何使用 class ComonSession: def __enter__(self): print('进入with语句块时执行此方法,此方法如果有返回值会赋值给as声明的变量') self.session=session return self.session def __exit__(self, exc_type, exc_val, exc_tb): self.session.close() with ComonSession() as session: session.filter() print('上下文管理器结束了')
Python是值传递还是引用传递
严格意义上来说,Python既不是值传递也不是引用传递,Python有自己的传递方式,规则是: ''' 如果传递的是不可变类型,在函数中修改,就不会影响原来的变量 如果传递的是可变类型,在函数中修改,会影响原来的变量,对原来的值进行修改,而不是重新赋值 ''' # 什么是值?什么是引用? 值就是一个变量---->是一个具体的值(一块内存空间放着这个变量的值) 引用是一个变量---->内存地址(内存地址指向了值) # 什么是值传递 什么是引用传递 -如果是值传递,函数中修改了传递的值,不会影响原来的 -如果是引用传递,函数中修改了传递的引用,就会影响原来的

__EOF__

本文作者泡芙有点甜
本文链接https://www.cnblogs.com/zx0524/p/17315095.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   小王应该在学习!  阅读(23)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示