cgi文件相关知识
-
web服务器,cgi及php-fpm之间关系首先,CGI是干嘛的?CGI是为了保证web server传递过来的数据是标准格式的,方便CGI程序的编写者。web server(比如说nginx)只是内容的分发者。比如,如果请求/index.html,那么web server会去文件系统中找到这个文件,发送给浏览器,这里分发的是静态数据。好了,如果现在请求的是/index.php,根据配置文件,nginx知道这个不是静态文件,需要去找PHP解析器来处理,那么他会把这个请求简单处理后交给PHP解析器。Nginx会传哪些数据给PHP解析器呢?url要有吧,查询字符串也得有吧,POST数据也要有,HTTP header不能少吧,好的,CGI就是规定要传哪些数据、以什么样的格式传递给后方处理这个请求的协议。仔细想想,你在PHP代码中使用的用户从哪里来的。当web server收到/index.php这个请求后,会启动对应的CGI程序,这里就是PHP的解析器。接下来PHP解析器会解析php.ini文件,初始化执行环境,然后处理请求,再以规定CGI规定
-
基础总结(二)-CGI与fastcgi与php-fpm与php-cgiPHP运行原理解析: CGI CGI全称是“公共网关接口”(Common Gateway Interface),Web Server 与 Web Application 之间数据交换的一种协议。HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。 CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。如php,perl,tcl等。 FastCGI FastCGI(Fast Common Gateway Interface)FastCGI是Web服务器和处理程序之间通信的一种协议, 是CGI的一种改进方案.FastCGI像是一个常驻(lon
-
如何创建和使用Python CGI脚本你是否想使用Python语言创建一个网页,或者处理用户从web表单输入的数据?这些任务可以通过Python CGI(公用网关接口)脚本以及一个Apache web服务器实现。当用户请求一个指定URL或者和网页交互(比如点击""提交"按钮)的时候,CGI脚本就会被web服务器启用。CGI脚本调用执行完毕后,它的输出结果就会被web服务器用来创建显示给用户的网页。配置Apache web服务器,让其能运行CGI脚本在这个教程里,我们假设Apache web服务器已经安装好,并已运行。这篇教程使用的Apache web服务器(版本2.2.15,用于CentOS发行版6.5)运行在本地主机(127.0.0.1),并且监听80端口,如下面的Apache指令指定一样:ServerName 127.0.0.1:80Listen 80下面举例中的HTML文件存放在web服务器上的/var/www/html目录下,并通过DocumentRoot指令指定(指定网页文件所在目录):DocumentR
-
3、Webserver如何处理动态文件1、webserver处理动态文件的方式模块化即把处理动态文件的引擎当成模块集成进webserver中CGI通信协议2、实现方式2.1、模块化a、过程描述:客户端发起动态文件请求webserver接收到请求,根据其配置文件的内容,交由至对应的动态模块处理b、要点: 把动态处理模块当成是webserver的一个子模块。2.2、CGI 通用网关接口(Common Gateway Interface/CGI)是一种重要的互联网技术,可以让一个客户端,从网页浏览器向执行在网络服务器上的程序请求数据。CGI描述了服务器和请求处理程序之间传输数据的一种标准。a、过程描述:客户端发起动态文件请求webserver接收到请求,交由至对应的CGI处理CGI创建子进程,由其处理该请求内容,并等待结果返回。b、要点: CGI这种每次调用都需要创建子进程的方式。一来是创建子进程的开销昂贵,二来是
cgi文件相关课程
cgi文件相关教程
- 2.5 CGI 的 Sessions CGI::Session可以保存为用户和 CGI 环境的持久会话状态,在需要关闭会话后,因此可以确保将数据写入内存,当会话结束时,您需要删除数据。#!/usr/bin/rubyrequire 'cgi'require 'cgi/session'cgi = CGI.new("html4")sess = CGI::Session.new( cgi, "session_key" => "a_test", "prefix" => "rubysess.")lastaccess = sess["lastaccess"].to_ssess["lastaccess"] = Time.nowif cgi['bgcolor'][0] =~ /[a-z]/ sess["bgcolor"] = cgi['bgcolor']endcgi.out{ cgi.html { cgi.body("bgcolor" => sess["bgcolor"]) { "The background of this page" + "changes based on the 'bgcolor'" + "each user has in session." + "Last access time: #{lastaccess}" } }}# ---- 输出结果 ----Content-Type: text/htmlContent-Length: 216Set-Cookie: a_test=8239f376c9e2cb2b77a0512bb3b8fa0b; path=<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><HTML><BODY>The background of this pagechanges based on the 'bgcolor'each user has in session.Last access time: </BODY></HTML>会话数据存在于服务器上的临时文件目录中,prefix 参数指定会话的前缀,作为临时文件的前缀。在服务器上,以便您可以轻松识别不同的会话临时文件。
- 2.4 CGI 的 Cookies 您可以创建一个名为 cookie 的对象并存储文本消息,将信息发送到浏览器,调用 CGI.out 设置cookie头:#!/usr/bin/rubyrequire "cgi"cgi = CGI.new("html5")cookie = CGI::Cookie.new('name' => 'mycookie', 'value' => 'Zara Ali', 'expires' => Time.now + 3600)cgi.out('cookie' => cookie) do cgi.head + cgi.body { "Cookie stored" }end# ---- 输出结果 ----Content-Type: text/htmlContent-Length: 32Set-Cookie: mycookie=Zara+Ali; path=; expires=Sun, 30 Aug 2020 18:01:17 GMT<HEAD><BODY>Cookie stored</BODY>我们回到页面时可以通过下面的方式获取到 Cookies:#!/usr/bin/rubyrequire "cgi"cgi = CGI.new("html5")cookie = cgi.cookies['mycookie']cgi.out('cookie' => cookie) do cgi.head + cgi.body { cookie[0] }end
- 1. 什么是 CGI CGI 是Common Gateway Interface的缩写,它是用于在万维网和 CGI 程序之间传送数据或信息的标识。CGI 程序提供了一种与用户进行交互的动态方式,并以可以接受和返回数据的方式进行设计。所有处理都在 Web 服务器上进行。因此,它被用作服务器端解决方案。简单来说,就是返回 HTML 代码。
- Ruby 的 CGI 编程 在本教程中,我们将学习 Ruby 编程语言中的 CGI(Common Gateway Interface)编程。
- 4.1 HTML文档扩展名 HTML 以文档的形式存储,文档的后缀可以是 .html .htm .xhtml,有时也会看到 php/asp/jsp 等类型的网页后缀,这种是通过服务器的 CGI 动态解析过的网页,网页内容也是 HTML 格式,只不过网页后缀是根据服务器的 CGI 网关的不同来定义的。不同的后缀形式可能在浏览器的解释结果不相同,在此不做深入讨论。
- 2.1 输出 Hello World 在 Ruby 中我们要输出 HTML 代码的话,应该这样去做。print "Content-type: text/html\r\n\r\n"print "<html><body>Hello World!</body></html>\r\n"# ---- 输出结果 ----Content-type: text/html<html><body>Hello World!</body></html>**解释:**在打印出任何真实的 HTML 内容之前,我们需要发送 HTML 标头,后跟空白行。至少我们需要打印出Content-type。下一行将打印内容类型,后跟两个换行符。第一个是Content-type行的结尾,第二个是空行的结尾。例子中最后显示的是 Hello World。为了更简便地使用 CGI,Ruby 将 CGI 封装到了 cgi 的库里面,您可以在require 'cgi'之后,创建表单、Cookie、维护状态会话等。我们用 cgi 库来实现刚刚的代码:#!/usr/bin/rubyrequire 'cgi'cgi = CGI.newputs cgi.headerprint "<html><body>Hello World!</body></html>\r\n"# ---- 输出结果 ----Content-Type: text/html<html><body>Hello World!</body></html>解释:第一行是用来确认系统中使用哪个解释器来理解文件中的代码。Tips:如果您在实行脚本的时候在终端出现:(offline mode: enter name=value pairs on standard input)的提示,请按ctrl + d继续执行脚本。
cgi文件相关搜索
-
c 正则表达式
c string
c 编程
c 程序设计
c 程序设计教程
c 多线程编程
c 教程
c 数组
c 委托
c 下载
c 线程
c 语言
caidan
cakephp
call
calloc
calu
camera
caption
case语句