keystone系列二:网关协议cgi,fastcgi,wsgi,uwsgi

一 用户上网过程

用户从打开浏览器输入网址到看到页面经历了什么?

1.首先必须web服务器运行

2.客户端运行浏览器软件

3.用户输入http://www.sina.com.cn/

4.客户端浏览器处理http://www.sina.com.cn/,发起查询本地DNS操作,将www.sina.com.cn->202.103.0.33

5.客户端浏览器发送http请求http://202.103.0.33:80/index.html   (注意:80是web服务器的默认端口,index.html是默认的请求的资源)

6.服务端web服务收到该http的request请求头,从请求头中获取客户端的方法GET/POST.../index.html这个路径,及客户端请求的其他相关信息

7.服务端web服务根据取得的信息,回复respone响应头

响应头中包含:

响应代码:200表示成功,3xx表示重定向,4xx表示客户端发送的请求有错误,5xx表示服务器端处理时发生了错误;

响应类型:由Content-Type指定;

以及其他相关的Header;

通常服务器的HTTP响应会携带内容,也就是有一个Body,包含响应的内容,网页的HTML源码就在Body中,压缩后返回给客户端。

8.客户端浏览器收到服务端发来的数据,解压后解析html内容,用户就看到网页内容了

9.html内可能嵌套其他的链接,比方说图片、视频、javascript脚本,flash等,客户端浏览器会继续发起http请求来获取它们。这样来自图片和视频的压力就被分散到各个服务器,一个站点由无数个站点相互连接起来,就形成了World Wide Web,简称WWW。

综上,其实就是一次http请求-响应的流程

我们可以打开浏览器在菜单中选择”视图“,“开发者”,"开发者工具",选择Network来监控浏览器与web服务器之间做的事情。

二 HTTP协议简介

web服务器即socket服务端,浏览器即socket客户端,这叫B/S架构,B与S之间通信的标准是HTTP协议(目前版本1.1,比1.0好在可以允许多个http请求复用一个TCP连接)

web服务器收到的客户端发来的请求头

web服务器发给客户端的响应头(返回body就是html了)

  1. 浏览器发送一个HTTP请求;
  2. 服务器收到请求,生成一个HTML文档;
  3. 服务器把HTML文档作为HTTP响应的Body发送给浏览器;
  4. 浏览器收到HTTP响应,从HTTP Body取出HTML文档并显示。

一 静态页面和动态页面

早期用户访问的都是静态页面,什么是静态页面?即对有所有人都是一样的

时间: 2024-10-10 04:38:51

keystone系列二:网关协议cgi,fastcgi,wsgi,uwsgi的相关文章

CGI FastCGI WSGI 解析

我们将服务端程序分为了web服务器和应用程序服务器. web服务器是用于处理HTML文件,让客户可以通过浏览器进行访问.主流的有apache,IIS,nginx,lghttpd等. 应用服务器处理业务逻辑,比如使用python的django,flask写成的程序 通常来自客户端浏览器的请求被web服务器截获,如果是静态请求,则如nginx会自己做处理,如果是动态请求,则会抛给后端应用服务器来处理.于是如何在web服务器与应用服务器之间进行通信成了主要问题,这就引出了以下三种处理的接口:CGI,F

漫谈CGI FastCGI WSGI

CGI(Common Gateway Interface) 最初,CGI 是在 1993 年由美国国家超级电脑应用中心(NCSA)为 NCSA HTTPd Web 服务器开发的. 这个 Web 服务器使用了 UNIX shell 环境变量 来保存从 Web 服务器传递出去的参数,然后生成一个运行 CGI 的独立进程.CGI的第一个实现是 Perl 写的 1. 效率低下:每一个连接 fork 一个进程处理. 功能十分有限:CGI只能收到一个请求,输出一个响应.很难在CGI体系去对Web请求的控制,

keystone系列三:网关协议

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

Python 中的“CGI” 接口——WSGI

今天在 git.oschina 的首页上看到他们推出演示平台,其中,Python 的演示平台支持 WSGI 接口的应用.虽然,这个演示平台连它自己提供的示例都跑不起来,但是,它还是成功的勾起了我对 WSGI 的强烈好奇心.一番了解,对该机制的认识,总结如下.如有不妥,还望斧正. 为什么是 WSGI? 写过网页应用的各位亲,应该对 CGI 有了解,我们知道,CGI 的全程是“Common Gateway Interface”,即通用 Gateway Interface.没错,这里的 WSGI,就是

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

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

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

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

OpenStack?网关协议

一 动态页面与静态页面区别 静态页面:每一个网页都有一个固定的URL,且网页的URL以.html..htm..shtml等常见的形式为后缀. 网页内容已经发布到网站服务器上,无论是否有用户访问,每个静态页面都保存在网站服务器上,也就是说静态网页是实实在在的保存在服务器上的文件,每个网页都是一个独立的文件 静态网页没有数据库支持,在网站制作和维护方面工作量较大 静态网页的交互性较差,在功能方面有较大的限制 说白了就是把页面上所有的东西设定好.做死了,然后放上去,不管谁在任何时候看到的页面内容都是一

keystone系列四:部署keystone

一 前言 任何软件的部署都是没有技术含量的,任何就部署讲部署的人都是江湖骗子. 部署的本质就是拷贝,粘贴,回车.我们家养了条狗,它可以胜任这件事情. 我们搞技术的,一定不能迂腐:轻信或者一概不信. 轻信者的傻逼就像是只学了上半册的葵花宝典,上半册教你欲练此功必先自宫,而下半册说的则是不自宫其实也可以. 不信者的傻逼就像是马冬什么?马什么梅?什么冬梅? 二 版本信息 官网http://docs.openstack.org/newton/install-guide-rdo/keystone.html

CGI/FASTCGI/ISAPI区别

一 CGI原理及其性能 1) CGI概念CGI即通用网关接口(Common Gateway Interface),它是一段程序,运行在服务器上,提供同客户端HTML页面的交互,通俗的讲CGI就象是一座桥,把网页和WEB服务器中的执行程序连接起来,它把HTML接收的指令传递给服务器的执行程序,再把服务器执行程序的结果返还给HTML页. 2)CGI程序语言事实上,任何一种程序语言,只要能在服务器主机上利用CGI接口来编写应用程序,都可以叫作CGI程序语言.目前最为流行的CGI程序语言有四种:C,Sh