从零开始学习Cgi

2019-07-01  本文已影响0人  凉拌姨妈好吃

这篇文章适合没有任何基础的朋友看,有基础的大佬移步python文档

为什么要用cgi?

在web发展的初期,网页都是静态的。为了使用动态网页,就产生了技术--cgi
什么是静态网页,什么是动态网页?

cgi如何做到静态转动态?

前端通过表单等可以向web服务器(比如apache)发送一个url,以及格外的参数(get或post等请求类型及其参数,服务器的信息等)。在Apache开启了cgi模块后,可以将上面的这些数据发送给cgi程序,这个程序可以是各种语言(c语言c++等)。程序可以解析出具体参数,然后输出内容响应给前端页面

——————————————————————————————————
看不懂上面的没关系,先看看下面的基础知识再返回来琢磨

网站到底是怎么发送数据的?

1.用户在浏览器中输入要访问的域名地址
2.通过一系列解析与web服务器建立一条TCP连接通道,之后浏览器向web服务器发送一条HTTP请求报文。
3.web服务器响应并读取浏览器的请求信息,发送给应用服务器
4.应用服务器返回消息给web服务器,web服务器返回一条HTTP响应报文给浏览器

网站响应的简略流程
有的网站因为流量小,不使用web服务器,直接发送数据给应用服务器。
可以参考:例子
用户访问浏览器完整过程,查看第四点
——————————————————————————————————
apache,nginx这些服务器,是静态服务器,也就是说,只能把本地的现成的html,css之类的东西传给浏览器。如果需要经过一些程序处理后返回数据给浏览器,那么服务器上的这个过程就叫cgi,程序就是cgi程序。如果没有cgi的话,我们就无法访问到后面的应用服务器,只能返回一些本地现成的静态数据。

cgi的概念

CGI是外部应用程序(CGI程序)与WEB服务器之间的接口标准,是在CGI程序和Web服务器之间传递信息的过程。

cgi脚本工作流程

1.浏览器通过HTML表单或超链接请求指向一个CGI应用程序的URL。
2.服务器收到请求。
3.服务器执行所指定的CGI应用程序。
4.CGI应用程序执行所需要的操作,通常是基于浏览者输入的内容。
5.CGI应用程序把结果格式化为网络服务器和浏览器能够理解的文档(通常是HTML网页)。
6.网络服务器把结果返回到浏览器中。

cgi流程

参考资料:
Web是怎么工作的: CGI脚本
如何理解 CGI, WSGI?
网关协议学习:CGI、FastCGI、WSGI
Web 服务器与应用服务器的区别是什么?
用户访问网站的完整流程
Python CGI编程

上一篇下一篇

猜你喜欢

热点阅读