OpenStack?网关协议

一 动态页面与静态页面区别

  静态页面:每一个网页都有一个固定的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等

打个比方吧,你要登录淘宝买东西这个一个步骤。

如上图就是用户在访问淘宝主页后再登录的过程

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)

大家看下图

  一般的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应用程序框架之间简单通用的接口。它只是一个接口定义:它即不负责服务器的实现,也不负责网页应用的实现。它只是一个两边接口方式的约定(就像一种暗号)

  中间件的含义

中间件的好处:

       完成缓存、字符编码转换等一些其他功能

    并且这种设计降低了server端与web app端耦合度之后的产物。提升了灵活性

如何使用wsgi部署keystone

  现在社区主流的部署方法有:

    apache(wsgi)+keystone

    nginx(uwsgi)+keystone

步骤流程

  

时间: 2024-10-19 04:09:44

OpenStack?网关协议的相关文章

keystone系列三:网关协议

浏览器发送一个HTTP请求: 服务器收到请求,生成一个HTML文档: 服务器把HTML文档作为HTTP响应的Body发送给浏览器: 浏览器收到HTTP响应,从HTTP Body取出HTML文档并显示. 一 静态页面和动态页面 早期用户访问的都是静态页面,什么是静态页面?即对有所有人都是一样的 网关协议 cgi,fastcgi,wsgi,uwsgi

网关协议学习:CGI、FastCGI、WSGI

CGI CGI即通用网关接口(Common Gateway Interface),是外部应用程序(CGI程序)与Web服务器之间的接口标准,是在CGI程序和Web服务器之间传递信息的规程.CGI规范允许Web服务器执行外部程序,并将它们的输出发送给Web浏览器,CGI将Web的一组简单的静态超媒体文档变成一个完整的新的交互式媒体.通俗的讲CGI就像是一座桥,把网页和WEB服务器中的执行程序连接起来,它把HTML接收的指令传递给服务器的执行程序,再把服务器执行程序的结果返还给HTML页.CGI 的

BGP--边界网关协议

要全面了解BGP,首先我们要回答以下看上去很简单的问题:为什么需要BGP,也就是说BGP是如何产生的,它解决了什么问题.带着以上问题,我们先简单的回顾一个路由协议发展的轨迹. 首先路由的实质是描述一个网络结构的表达方式,路由表其实是一个结果的集合.在早期的ARPANet网络时代,网络规模有限,路由数量也不大,因此所有的路由器可以维护整个网络拓扑,那时候使用的路由协议叫GGP(Gateway-to-Gateway Protocol).GGP自然成为第一个内部网关协议(IGP).在1980年左右.当

2016.8.14 网络工程师之网关协议

1.路由器又叫做IP网关,网关协议就是用于网关之间交换路由信息的协议 2.自治系统: (1)自治系统是由同构型的网关连接的因特网,自治系统内部的网关之间执行内部网关协议(IGP),互相交换路由信息 (2)IGP是自治系统内部专用的,为特定的应用服务,在自治系统之外是无效的: (3)一个因特网也可能由不同的自治系统互连而成,例如若干个校园网通过广域网互连就是这种情况:在不同的自治系统之间采用外部网关协议(EGP)交换路由信息 3.外部网关协议: (1)EGP以自治系统为节点,通告各个网关可到达哪些

【技术分享】网关协议学习:CGI、FastCGI、WSGI

CGI CGI即通用网关接口(Common Gateway Interface),是外部应用程序(CGI程序)与Web服务器之间的接口标准,是在CGI程序和Web服务器之间传递信息的规程.CGI规范允许Web服务器执行外部程序,并将它们的输出发送给Web浏览器,CGI将Web的一组简单的静态超媒体文档变成一个完整的新的交互式媒体.通俗的讲CGI就像是一座桥,把网页和WEB服务器中的执行程序连接起来,它把HTML接收的指令传递给服务器的执行程序,再把服务器执行程序的结果返还给HTML页.CGI 的

OSPF内部网关协议

? IGP:内部网关协议,范围内称之为自治域系统(AS)? EGP:外部网关协议,典型的有BGP OSPF是链路状态路由协议 一段链路上相邻的路由器叫做邻居关系,在达成邻居关系之后建立临接关系,才能互相传递数据,邻居不一定是邻接关系 原理:邻居路由器建立邻接关系,互相传递链路状态信息,根据整个网络拓扑图,经过SPF算法的到最优路径,形成路由表 Dijkstra算法:Dijkstra发明的算法,即SPF最短路径算法 区域ID可以表示成一个十进制的数字,可以表示成一个IP.Area0骨干区负责区域间

OpenStack?HTTP协议

前言 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议.所有的WWW文件都必须遵守这个标准 HTTP是一个基于TCP/IP通信协议来传输数据(HTML文件.图片文件.查询结果) HTTP协议工作于客户端-服务端架构为上.浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求.Web服务器根据接收到的请求后,向客户端发送响应信息.(请求的数据往往比较小,而返回的数据往往比较大.因为返回的数据中包含了Body

Wifidog分析wifidog认证网关协议v1

原文链接:http://dev.wifidog.org/wiki/doc/developer/WiFiDogProtocol_V1 网关心跳(Ping协议)Wifidog将ping协议做为心跳机制向认证服务器发送当前状态信息.这可以实现为认证服务器每个节点的状态生成中央日志.Wifidog客户端在conf文件中进行设置,目的是通过http定期启动thread(ping_thread.c)向认证服务器发送状态信息.信息格式如下: http://auth_sever/ping/? gw_id=%s

IoT网关协议比较:MQTT,CoAp,XMPP,MBUS,OPC UA

物联网(IoT,或者说工业互联网)的基础在于设备之间的通信,通信协议在将海量设备连接到互联网时发挥着重要作用.本文介绍IoT中的通信/通讯协议,并对常用的协议如:MQTT, CoAp, OPC UA, Modbus, Profinet ,介绍其特点,并进行比较,说明协议的适用场景.先上一张大图. IoT中的常用协议 MQTT MQTT全称消息队列遥测传输(Message Queue Transfering Transport),是一种轻量级,可扩展的互联网协议,可用于支持物联网全局通信.MQTT