当前位置: 首页 > news >正文

外贸网站模板 免费建设搜索引擎友好的网站

外贸网站模板 免费,建设搜索引擎友好的网站,厂里拿货开小加工厂,制作软件的公司叫什么用户到我们web应用中间经过的相关协议#xff0c;具体介绍和pyhton相关的WSGI和ASGI#xff0c;我先把结论列出来#xff0c;详细描述请看下面介绍#xff01; 请大家先记住这张图#xff0c;带着问题和整个框架去看比较易于了解 CGI#xff0c;WSGI#xff0c;ASGI、…用户到我们web应用中间经过的相关协议具体介绍和pyhton相关的WSGI和ASGI我先把结论列出来详细描述请看下面介绍 请大家先记住这张图带着问题和整个框架去看比较易于了解 CGIWSGIASGI、框架以及Web服务器的关系比如flask这是一个同步框架同时也是一个Web应用一个请求需要经过Web服务器和WSGI服务器才能和框架“交流”数据。下面请看一张图来澄清整个链路 对这张图有一段话解释这里借鉴一下参考[1] 首先nginx 是对外的服务接口外部浏览器通过url访问nginx, nginx 接收到浏览器发送过来的http请求将包进行解析分析url如果是静态文件请求就直接访问用户给nginx配置的静态文件目录直接返回用户请求的静态文件 如果不是静态文件而是一个动态的请求那么nginx就将请求转发给uwsgi,uwsgi 接收到请求之后将包进行处理处理成wsgi可以接受的格式并发给wsgi,wsgi 根据请求调用应用程序的某个文件某个文件的某个函数最后处理完将返回值再次交给wsgi,wsgi将返回值进行打包打包成uwsgi能够接收的格式uwsgi接收wsgi 发送的请求并转发给nginx,nginx最终将返回值返回给浏览器。 要知道第一级的nginx并不是必须的uwsgi完全可以完成整个的和浏览器交互的流程但是要考虑到某些情况 ​ a. 安全问题程序不能直接被浏览器访问到而是通过nginx,nginx只开放某个接口uwsgi本身是内网接口这样运维人员在nginx上加上安全性的限制可以达到保护程序的作用。 ​ b. 负载均衡问题一个uwsgi很可能不够用即使开了多个work也是不行毕竟一台机器的cpu和内存都是有限的有了nginx做代理一个nginx可以代理多台uwsgi完成uwsgi的负载均衡。 ​ c. 静态文件问题用django或是uwsgi这种东西来负责静态文件的处理是很浪费的行为而且他们本身对文件的处理也不如nginx好所以整个静态文件的处理都直接由nginx完成静态文件的访问完全不去经过uwsgi以及其后面的东西。 通用型网关接口CGI、FastCGI 网关接口是一种协议为了实现加载动态脚本。CGI程序则是实现了CGI协议的一种程序 Web服务器网关接口协议WSGI、ASGI、uwsgi 网关接口是用于Web应用与Web服务器进行通讯。其中WSGI、ASGI是专为python设计的网关接口。uwsgi是uWSGI服务器自有的传输协议 实现了Web服务器网关接口的软件有uWSGI注意大小写、uvicorn、gunicorn 同步异步同步是指执行是串行的需要处理完当前任务在处理一下异步指并行的现有的任务不影响下一个任务的执行。类比到请求上面就是假如同时有两个请求进来在同步处理的框架下第二个请求需要等第一个结束之后才能响应而异步就可以并行处理 Web框架 诸如Flask、Django这类pyhton Web框架可以被启动当成服务器的原因都是因为其自带启动了WSGI服务器才允许Web服务器与Web框架之间进行连接。效率极其低下一般生产可以使用gunicorn、gevent等WSGI服务器 这里请参考flask启动的案例Flask.run() def run(self, hostNone, portNone, debugNone, load_dotenvTrue, **options):     Runs the application on a local development server. Do not use run() in a production setting. It is not intended to     meet security and performance requirements for a production server.     Instead, see :ref:deployment for WSGI server recommendations.     ****     *     # 省略了部分代码     *     # 省略了部分代码     *     # 省略了部分代码     from werkzeug.serving import run_simple try:         run_simple(host, port, self, **options)     *     # 省略了部分代码     *     # 省略了部分代码     *     # 省略了部分代码      这里注意到run_simple我们继续跟踪进去看其代码如下 def run_simple(     hostname,     port,     application,     use_reloaderFalse,     use_debuggerFalse,     use_evalexTrue,     extra_filesNone,     reloader_interval1,     reloader_typeauto,     threadedFalse,     processes1,     request_handlerNone,     static_filesNone,     passthrough_errorsFalse,     ssl_contextNone, ):     Start a WSGI application. Optional features include a reloader,     multithreading and fork support. 可以看到这里就是做启动WSGI服务的简单准备工作具体代码就不分析感兴趣的小伙伴可以去跟踪看下生成的过程 而FastAPI这类高性能、纯Web框架是没有带WSGI或者ASGI协议的服务器启动功能的所以我们在启动的时候需要用uvicorn等命令 总结框架是为了让我们专注于逻辑代码和业务的实现我们可以无需将时间和精力花在数据如何传输如何编码请求和响应是如何执行的。不过这中间可能会涉及到服务器之间的层层关系所以我们有必要了解一下整个链路来龙去脉 协议规范    支持的请求协议常见未列全    同步/异步    支持的框架 CGI    HTTP        CGI程序 WSGI    HTTP    同步    FlupFlask ASGI    HTTPHTTP2WebSocket等    同步/异步    FastAPIQuartSanicViboraTornado CGI CGI(Common Gateway Interface),通用网关接口它是一种协议是Web服务器和独立进程之间的协议它会把HTTP请求的Request的Header设置成进程环境变量HTTP请求的Body正文设置成进程的标准输入进程的标准输出设置为HTTP响应的Response。 早期的Web服务器只能响应浏览器发来的HTTP静态资源的请求随着技术的发展需要用到动态技术。由于Web服务器不能直接运行动态脚本为了解决Web服务器与应用程序之间数据互通出现了CGI。由于效率低下不安全等原因目前在生产环境基本被抛弃。 CGI程序 CGICommon Gateway Interface是一个接口规范或协议实现其规范的程序叫做CGI程序。Web客户端发送HTTP请求到Web服务端之后服务端通过CGI程序进行处理数据处理完的结果在逐层返回请看下图 我们常说的Web服务器一般是用于加载静态文件的请求有一些动态脚本的请求就会需要Web服务器创建一个新的进程来启动CGI程序也就是CGI程序进行加载动态脚本之后由Web服务器返回给客户端。 CGI程序可以是任何有标准输入和输出的脚本语言或者编程语言实现的但由于其漏洞大安全性低每次有动态页面请求都会启动一个CGI程序因此服务器压力特别大。逐渐出现了mod_perl、FastCGI等增强版本 WSGI Web服务器网关接口Python Web Server Gateway Interface缩写为WSGI它是一种专为python定义的接口规范用于web服务端和web应用框架之间的连接如此web应用可以一起处理一个请求同时也是基于CGI进行设计的 通俗的理解WSGI也是一种规范协议主要是建立一个适用于服务器与Web框架之间的接口。那么跟CGI类似的你可以通过自己的编程语言实现符合WSGI的应用程序下面看一下WIKI上面的例子 def app(environ, start_response):     start_response(200 OK, [(Content-Type, text/plain)])     yield Hello world!\n 1 2 3 其中 第一行定义了一个名为 app 的 callable服务器网关接口#cite_note-2)接受两个参数environ 和 start_responseenviron 是一个字典包含了 CGI 中的环境变量。 第二行调用了start_response状态指定为“200 OK”消息头指定为内容类型是“text/plain”。start_response 也是一个 callable接受两个必须的参数statusHTTP 状态和 response_headers响应消息的头。 第三行将响应消息的消息体返回。 这里的流程请注意 Web客户端浏览器发送请求 HTTP服务器接收请求 实现了WSGI的服务器接收请求可以和2合并 a. 把环境变量和请求参数以及一个callback回调函数传递给Web应用程序 b. Web应用程序处理完之后通过回调函数返回给HTTP服务器 WSGI 协议包含两个部分一个是 WSGI 服务器端server另一个则是应用程序端(application)。即 WSGI 对上文中的 Web 应用程序也有比较严格协议规定。固编写 Web 应用程序通常需要使用支持 WSGI 协议的应用框架如 Django、Flask 等。 ASGI 异步网关接口Asynchronous Server Gateway Interface是WSGI的扩展版本旨在为Python Web服务、框架和应用之间提供一个标准的异步接口。其本身可以提供同步和异步应用并且可以并行处理。还能处理多种通用协议包括HTTPHTTP2和WebSocket。同WSGI一样需要有独立的服务器实现这种异步的网关接口比如Daphne、Uvicorn、Hypercorn等
http://www.w-s-a.com/news/866303/

相关文章:

  • 建设网站是主营成本吗wordpress 后台
  • 猎头可以做单的网站企业网站建设
  • 建小程序需要网站吗在putty上怎样安装wordpress
  • 天津智能网站建设找哪家WordPress相册插件pro
  • 电脑网站页面怎么调大小济宁网站建设软件开发
  • 亿玛酷网站建设广州增城区最新消息
  • 企业网站视频栏目建设方案中企动力网站模板
  • 网站页面策划国外注册域名的网站
  • 百中搜如何做网站排名网站维护一年一般多少钱
  • 镇江地区做网站的公司wordpress说说加分类
  • 深圳高端网站设计免费的关键词优化软件
  • 视频网站公司沈阳网站建设服务
  • 网站全屏代码做网站必须用对方服务器
  • 网站速度慢wordpressssl正式申请后wordpress
  • 那个网站做玉石最专业西瓜创客少儿编程加盟
  • 备案时的网站建设方案书免费软件库
  • 惠州外贸网站建设网站模板 兼容ie8
  • 南京淄博网站建设方案php网站开发实训感想
  • 网站设计的含义只做恐怖片的网站
  • 网站改版方案ppt室内装修公司简介
  • 做色网站wordpress twenty ten
  • 马鞍山建设工程监督站建管处网站免费的海报模板网站
  • 类似百度的网站移动端的网站怎么做的
  • 网站开发需要什么文凭网站分析的优劣势
  • 海尔网站建设不足之处山东网站营销
  • 楚雄 网站建设广告设计一般人能学吗
  • 热搜榜排名前十山东seo多少钱
  • 衡水哪有建网站的吗企业信息系统英文
  • 有模板怎么建站wordpress媒体库图片路径
  • 怎么做网站h汉狮企业网站营销的实现方式