设为首页 收藏本站
查看: 1293|回复: 1

[经验分享] OpenStack☞网关协议

[复制链接]

尚未签到

发表于 2017-6-27 14:57:31 | 显示全部楼层 |阅读模式
一 动态页面与静态页面区别


  静态页面:每一个网页都有一个固定的URL,且网页的URL以.html、.htm、.shtml等常见的形式为后缀。
  网页内容已经发布到网站服务器上,无论是否有用户访问,每个静态页面都保存在网站服务器上,也就是说静态网页是实实在在的保存在服务器上的文件,每个网页都是一个独立的文件
  静态网页没有数据库支持,在网站制作和维护方面工作量较大
  静态网页的交互性较差,在功能方面有较大的限制
  说白了就是把页面上所有的东西设定好、做死了,然后放上去,不管谁在任何时候看到的页面内容都是一样的,一成不变(除非手动修改页面)
  动态页面:动态网页以数据库技术为基础,可以大大降低网站维护的工作量
  采用动态网页技术的网站可以实现更多的功能,如注册用户登录、在线查询、用户管理等。
  动态页面客户端发到服务端的请求会经过一个WEB server来处理,如果请求是静态资源,则交给web服务器。如果是动态资源,则现将请求叫一个WEB Container(WEB容器),在WEB Container中连接数据库,从数据库进行一系列的操作然后动态拼凑页面的展示内容,最后把页面交给WEB服务器,之后通过服务器将内容返回给客户端
  什么是Web Server
  web 服务器 主要功能是提供网上信息浏览服务。Web服务器可以解析http协议当Web服务器接收到一个http请求(request),会返回一个HTTP响应(response),例如送回一个HTML页面。为了处理一个请求(request),Web服务器可以响应(response)一个静态页面或图片,进行页面跳转,或者把动态响应的产生委托给一些其它的程序例如CGI脚本,JSP脚本等。无论它们的目的如何,这些服务器端的程序通常产生一个HTML的响应(response)来让浏览器可以浏览。
  常见的Web Server 有Nginx Apache lighttp等
  打个比方吧,你要登录淘宝买东西这个一个步骤。
DSC0000.png

  如上图就是用户在访问淘宝主页后再登录的过程
  apache无法处理动态请求,所以我们要编写一个个的功能来处理这动态请求
  处理动态请求的伪代码 可以称之为web application 或简称为web app
  1.接受apache提交的用户请求,触发函数运行
  2.连接数据库 
  3.操作数据库
  4.根据获取的数据进行其他的逻辑处理
  5.返回给apache 
  6.关闭数据库
  这样会有三大问题
  1.首先要研究透彻http协议。
  2.该代码只是为apache定制的代码,更换其它web server则无法使用
  3.若有其他动态请求(除了登录外)其他的请求,那么还要重复开发,影响效率
  解决问题的方法
  1.重新定义一种协议标准。比如之前的web server 与web app 之间的"暗号"(http协议)晦涩难懂,那么这回就在原来的"暗号"上(http协议)弄一个"简单的暗号"
  2.apache是一个web server 这回换成nginx服务。nginx也是一个web server,那么只要是web server都要遵守http协议这个"简单的暗号"。所以,解决了问题一也就解决了问题二
  3.将重复的代码定义一个框架,当重复用的时候只要调取这个框架就可以了。这个框架叫web app框架(也叫web框架)
  这样,三大问题就解决了。这里面的"简单暗号"就是网关协议  (例如cgi)
  大家看下图
DSC0001.png

  一般的web app框架都是遵守网关协议的。也就是说,如果遵守了web app的框架,那么就遵守了网关协议。遵守了网关协议也就遵守了http协议。所以说只要按照web app框架去开发web app就可以了。
  网关协议有哪些
  CGI即通用网关接口(Common Gateway interface)。是web server 与web app见得接口标准
  优点:CGI程序主要由Perl编写,但它可以由多种语言写成,一个有Bug的CGI程序不会使Web服务器崩溃。
  因为CGI程序在它们的操作系统shell中执行,这些程序与执行同一个CGI程序的其它HTTP请求不会出现并发冲突,所有服务为CGI程序提供支持
  跨平台性强
  缺点:CGI程序的应该答时间很长,会大量占用系统资源
  CGI不具有升级性
  CGI语言不是安全和面向对象的
  Fastcgi即快速cgi。大体上与cgi流程一样。只不过唯一区别是CGI的工作流程是:web server -->请求 -->cgi -->子进程-->处理请求-->web server-->关掉子进程。这样的流程是非常消耗系统资源的,所以fastcgi与cgi的区别是。产生一个子进程处理完请求后并不会直接关闭。等到下一次请求的时候直接处理。
  重点——网关协议之WSGI
  WSGI即(“Python” Web Server Gateway interface)的缩写 。是Python语言定义的Web服务器和Web应用程序框架之间简单通用的接口。它只是一个接口定义:它即不负责服务器的实现,也不负责网页应用的实现。它只是一个两边接口方式的约定(就像一种暗号)
  中间件的含义
DSC0002.png

  中间件的好处:
  完成缓存、字符编码转换等一些其他功能
  并且这种设计降低了server端与web app端耦合度之后的产物。提升了灵活性
  如何使用wsgi部署keystone
  现在社区主流的部署方法有:
  apache(wsgi)+keystone
  nginx(uwsgi)+keystone
  步骤流程
DSC0003.png

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-388742-1-1.html 上篇帖子: L2 Population 原理 下篇帖子: openstack-glance API 镜像管理的部分实现和样例
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表