在阅读《python编程》第一章的CGI编程部分时,出现了无法响应的问题,最后参考 解决了问题,在此做个记录
记得一开始接触web开发的时候,看视频,视频里面的老师一般都会语重心长的说:想当年我们一开始学习编程那会儿,都是用cgi编程,复杂的很,现在你们学习web编程,直接有现成的框架来用,十分简单。记得当然听完这句话之后就会觉得这个老师好有经验,技术很高。
实现一个cgi程序前必须知道为什么会产生cgi?cgi的作用是什么?以下解释简单粗暴,不当之处请谅解。
Common Gateway Interface,即通用网关接口。因为服务器并不能直接与PHP交互,所以需要有个转换的过程,CGI就是定义了这个转换的规则
CGI是指web服务器调用编程语言编写的程序的一个接口。比如我们可以编写一个用户注册的页面,用户将其输入的邮箱、用户名、密码输入并点击注册,此时浏览器就将用户输入的内容发送给了我们后台的CGI程序,我们的CGI程序接受到这些信息,可以对其进行处理。比如送入数据库、判断输入的信息是否合法等。
CGI::Session 可以为用户和CGI环境保存持久的会话状态,会话使用后需要关闭,这样可以保证数据写入到存储当中,当会话完成后,你需要删除该数据。
Ps:2019-1-18修改 我其实对这篇文章能有两万+的阅读量感觉很惊讶,占了我博客访问人数的很大一部分,我猜测可能确实是传统的Python web开发的学习方式都是从框架开始,而框架封装过度,让人难以理解背后的原理,最后只是简单的学习API和框架,同时学习Python的人中很大一部分其实是非计算机专业的同学,基础薄弱,想学习底层原理也不知道从何入手。 原先博文优点和缺点都很明显,缺点在于我只是简单罗列了资源,很多东西其实没有表达清楚,因为最初的目的,并不是教学,而是自己回顾和总结,优点可能在于他是比较系统化的展示出了web开发的演变过程,这其实有助于建立知识之间的联系和对web开发整体的理解。 后来我就考虑能否把文章的内容更加深入一些,用一套代码就能展现出这整个过程演变,而不是碎片化的资源罗列,把真正做成一个教学贴。但是因为拖延症一直没有完成,现在基本完成,我希望它会是一个好的学习指南,也希望读者能从学习这些代码的过程中,理解web开发的本质。
通用网关接口,外部程序与web服务器之间的接口标准,是在cgi程序和web服务器之间传递信息的过程
网上对于FastCGI与mod_php的知识比较杂乱而不全面,故在此整理一下,以便入门学习者查阅方便。 背景PHP最常用的方式是以模块的方式(mod_php)运行在Apache中,也是Apache运行PHP的默认方式;但在Nginx中,Nginx又使用的是PHP-FPM,但是PHP-FPM到底是个什么东东?跟php有什么关系?今天我们一起来探究一番。
在如今这个时代,互联网可谓是大行其道,由互联网带动的各行各业蓬勃发展,也正是由于及时抓住的互联网带来的发展机遇,成就了一大批科技巨头,他们利用互联网技术推出了一大批科技产品,这些科技产品在给人们带来方便、快捷的生活的同时,也在慢慢改变着世界。
前台(前端)后台(后端),在英语中即:Front-End,Back-End。广义上的前端包括客户端(PC、Android、IOS等),现在有个说法叫:大前端。后台即通常意义上的Server。没错,就是在互联网诞生之初即存在的C/S架构。服务的提供方称为Server,一般是一个偏中心化的服务集群。客户端Client为用户接入服务的控制重点。C/S架构有明显的主次之分,这与后来产生各类种子(BT、电驴)下载技术的P2P对等网络相对应。在P2P网络中不区分C或S,每个节点既是C也是S,这便是对等(Peer)网络。
Python 是一种极具可读性和通用性的编程语言。Python 这个名字的灵感来自于英国喜剧团体 Monty Python,它的开发团队有一个重要的基础目标,就是使语言使用起来很有趣。Python 易于设置,并且是用相对直接的风格来编写,对错误会提供即时反馈,对初学者而言是个很好的选择。
CGI(Common Gateway Interface) 是WWW技术中最重要的技术之一,有着不可替代的重要地位。CGI是外部应用程序(CGI程序)与Web服务器之间的接口标准,是在CGI程序和Web服务器之间传递信息的过程。CGI规范允许Web服务器执行外部程序,并将它们的输出发送给Web浏览器,CGI将Web的一组简单的静态超媒体文档变成一个完整的新的交互式媒体。
接着C语言CGI编程入门(一),这次来介绍一个C语言库,叫“CGIC”,这是他们的官网:http://www.boutell.com/cgic/
早期的web服务器,只能响应浏览器发来的HTTP静态资源的请求。随着Web技术的发展,逐渐出现了动态技术,但是Web服务器并不能够直接运行动态脚本,为了解决Web服务器与外部应用程序(CGI程序)之间数据互通,于是出现了CGI(Common Gateway Interface)通用网关接口。
Common Gateway Interface,HTTP 服务器与你的或其它机器上的程序进行“交谈”的一种协议,其程序须运行在网络服务器上。
原文出处: 彭长霖 本文所讨论的安全性环境是在Linux+Apache+Mysql+PHP。超出此范围的安全性问题不在本文范畴之内 一、apache server安全性设置 1、以Nobody用户运行 一般情况下,Apache是由Root 来安装和运行的。如果ApacheServer进程具有Root用户特权,那么它将给系统的安全构成很大的威胁,应确保Apache Server进程以最可能低的权限用户来运行。通过修改httpd.conf文件中的下列选项,以Nobody用户运行Apache 达到相对安全的
运维过程中工程师薄弱的防护意识,产生了越来越多安全事件。我们需要全面运维过程中的基础服务常见漏洞和Web server常见漏洞以及运维工具常见漏洞等安全风险,并深入探讨运维安全意识相关的思路方法,防患于未然。
HTTP 扩展和接口的发展是由用户需求驱动的。要在 Web 上发布更复杂资源的需求出现时,人们很快就明确了一点:单个应用程序无法处理所有这些能想到的资源。
PHP 是一种HTML 内嵌式的语言,PHP与微软的ASP颇有几分相似,都是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,现在被很多的网站编程人员广泛的运用
为了更好地了解 CGI 的概念,让我们点击一个超链接,浏览一个特定的网页或 URL,看看会发生什么。
让我们坐上时光机,回到上个世纪90年代的中叶。C语言稳坐编程语言江湖的头把交椅,C++也羽翼渐丰。彼时在圣克拉拉的某个咖啡馆里出现了一位其貌不扬的少年。谁都不会想到这个手持盒子,靠嵌入式起家的孩子会成为日后十年、二十年乃至更长的时空中,搅动互联网江湖的重要人物。他的名字是——Java。
在最近半个世纪里,计算机软件的作用发生了很大的变化。硬件性能的极大提高、计算机结构的巨大变化、存储容量的大幅度增加以及种类繁多的输入、输出方法都促使基于计算机的系统更加先进和复杂。Web应用属于计算机软件的子集,在此期间也在快速的发展中。从早期的企业黄页,到现在的各种移动端应用、云服务,都离不开Web技术的不断迭代升级。从架构层面上看,早期的应用大部分是C/S结构的,C/S结构系统大多分为两层,客户端实现用户展示和部分逻辑,服务端实现数据存储和部分逻辑。到了面向对象出现的时候,应用开始转向三层结构即表现层展示用户界面,领域层实现业务逻辑,数据层存取数据。这样的分层使不同层级的开发人员可以专注于各自部分的技术,通过服务接口调用彼此合作。上个世纪90年代Web的出现,应用结构开始从C/S结构转变成B/S结构,Web应用的兴起,也让Web技术得到了巨大的发展。Web技术的发展很多也是遵循着分层思想,分层使层与层之间实现了解耦和复用,慢慢的层级之间结构化越来越清晰,实现了层级的标准化。下面我们沿着Web的发展阶段,分析一下一些主要的Web技术。
虽然现在开发web用的都是一些成熟的框架, 使我们可以不用关心底层的接口逻辑, 但是多了解一些底层的知识对我们也是有帮助的。
一个模糊的概念 无论是php,python编程语言,还是apache,nginx服务器对于cgi协议是个绕不开的话题。安装,部署都会经常的看到,那么它们到底是干什么的,网上的答案非常的多!今天通过它们
一:500错误 1、500 Internal Server Error 内部服务错误:顾名思义500错误一般是服务器遇到意外情况,而无法完成请求。
tinyhttpd是一个demo版的服务器。代码几百行。源码分析在http://suo.im/6bkZlt。从中可用一窥服务器的基础原理。他采用的是一个请求新开一个线程处理的方式。里面涉及了多进程、多线程、进程间通信等知识。 我们从main函数开始分析。
Fiddler是一款强大的HTTP抓包工具,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据. 使用Fiddler无论对开发还是测试来说,都有很大的帮助。Fiddler提供的功能基本上能满足大部分人的基本要求。但是如果我们需要一些更复杂,更便捷的方式的功能来支持我们的工作(比如同时对多个指定的会话设置端点,不带cookie发起会话等),那么Fiddler提供的功能就往往力不从心了,或者使用起来比较复杂。Fiddler提供了Jscript脚本,让我们随心所欲的改造Fiddler,实现一些其他更强大的功能。本文主要介绍的是通过编写Fiddler的Jscript脚本的方法来实现Fiddler功能的拓展。
知道 PHP 是什么、如何工作或者为什么如此热门,但现在该是进一步了解 PHP 的时候了。因此本文简要介绍了关于 PHP 基础的基本概念。php的介绍及Php有什么优势?
计算机网络把分布于各地的单独的计算机连接起来,可以进行数据的共享与交互.这是web的根基
在新的Python 3.x中,BaseHTTPServer, SimpleHTTPServer, CGIHTTPServer整合到http.server包,SocketServer改名为socketserver。
typedef struct { unsigned char version; // 版本号 unsigned char type; // 数据包类型 unsigned char requestIdB1; // 记录 id 高 8 位 unsigned char requestIdB0; // 记录 id 低 8 位 unsigned char contentLengthB1; // 记录内容长度高 8 位(body 长度高 8 位) unsigned char contentLengthB0; // 记录内容长度低 8 位(body 长度低 8 位) unsigned char paddingLength; // 补齐位长度(body 补齐长度) unsigned char reserved; // 补齐位 }FCGI_Header;
C/C++学习到这儿,结合自己曾经学过的javasweb知识,现在让我们来看看,如何做一个CGI程序吧! 首先了解一下啥子叫CGI :CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。 ----来自百度百科 1. 首先,我们需要 Apache server2.0(学习web,应该必须知道这个的,嘻嘻),安装好该软件之后,也许会出现很多的问题,导致打不开什
那就又疏忽了,人也是不可信的,当bugfix很紧急的时候还记得吗?别人写的代码能控制吗?再细心的人也会有疏忽的时候
JSP和Servlet都是与使用Java构建基于Web的应用程序有关的重要概念。 基本上,Servlet是Java中HTML,而JSP是HTML中的Java。 任何典型的Web开发面试都可能有几个基于JSP和Servlet的Java面试问题 。
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/details/12917987
数据字段防卫探索 这个标题不知道怎么取,估计没人看得懂,还是直接看背景吧 -_-!! 背景 某天,小Y借到一个需求:页面这里要展示一个列表,cgi数据字段是xxxlist 太简单了,几分钟的事情: D
最近要把防火墙项目做个页面,而底层全部c语言实现,那么就得做个web页面,想了一下,C大法这么厉害,也应该可以的,然后大家就见到了这篇文章。
CGI 即 Common Gateway Interface,译作“通用网关接口”。初次听闻,略感疑惑,实则每个字眼都值得玩味。
在上文中,我们使用了nginx + php-cgi 来配置thinkphp的运行环境,项目已成功运行,可以很开心的开发php项目了。
文 | 编程随想曲 首发 | 编程随想曲 查看网页源码 curl www.sina.com 只显示http response的头信息 curl -I www.sina.com 发送表单信息(GET
废话不多说,前面实现过使用linux c 或者python 充当客户端来获取http 响应,也利用muduo库实现过一个简易http服务器,现在来实现一个python版
通信协议是通信的理论基石,计算机、操作系统以及各种网络设备对通信的支持是计算机网络通信的物质基础
当一个服务web-service(nginx)分配过来请求的时候,通过匹配后缀是动态的php的请求。CGI就会去读取php.ini的基本配置信息,初始化环境,创建进程,返回数据,退出进程。每一次请求都是循环往复,所以有些繁琐,这是后面为什么会诞生fastcgi的原因。
互联网飞速发展,在web开发的江湖中,除了武林盟主Java以外,许多脚本语言都参与进来分一杯羹。花开花落,花落花开,无数少年侠士在Web江湖演绎着自己的传说,不不负少年游。
领取专属 10元无门槛券
手把手带您无忧上云