首页 > 其他分享 >CGI的工作原理

CGI的工作原理

时间:2023-05-28 10:36:44浏览次数:32  
标签:CGI Web 浏览器 程序 工作 服务器 原理 客户端


CGI是Web服务器和外部程序之间的一个接口。利用CGI程序可以处理从Web上客户端发送出来的表单和数据,并对此做出相关操作。这种反应可以是HTML文件、图片、声音、视频等可以在浏览器窗体上出现的任何数据。通用网关接口有两个含义。首先它为客户端用户通过www获取Internet上的其他服务,例如Archie、WAIS、Database等提供了一个接口,虽然不能直接在www上访问这些服务,但是您可以通过一个CGI程序和Web服务器访问它们。其次它就是您编写的程序和Web服务器间的接口标准。您所编写的处理客户端有关信息的程序必须遵循这个标准。

那么,CGI是如何在客户端的Web浏览器(如Netscape Navigator)和Web服务器(如NSCA HTTPd)间工作的呢?

当客户端的浏览器向Web服务器请求一个HTML文件时,服务器在收到请求后就去寻找这个文件并将找到的文件传送给客户端。而当客户端的请求是一个CGI程序时,Web服务器将激活客户端所请求的CGI程序。此时Web服务器所起的作用就好像是客户端和CGI程序间的中间人,如图所示。CGI程序的工作一般可以分为以下几个步骤。




CGI的工作原理_客户端



 

1.客户端发出请求

首先,客户端的浏览器发出一个请求给Web服务器。如果这个请求是一个普通的文件(例如HTML文件、GIF或JPEG文件),Web服务器就将文件直接传送给客户端的浏览器。如果这个请求是一个CGI程序或外部应用,Web服务器将激活相应的CGI程序。例如:客户端传送来的请求可能是对一个数据库的检索,此时一个相应的CGI程序将被Web服务器激活,这个CGI程序将根据客户端要求的准则去检索相应的数据库,并通过Web服务器将结果传送给客户端。

 

2. Web服务器激活CGI程序

当Web服务器发现客户端浏览器传送来的请求不是一个普通文件而是一个CGI程序时,Web服务器就要激活这个CGI程序并执行它(比如:http://www.example.com/wiki.cgi)。

在这个CGI程序被执行前,Web服务器要为该CGI程序设置一些环境变量。这些环境变量被服务器用来向CGI程序传递一些非常重要的信息,例如当前Web服务器的状态、谁发出的调用等等。Web服务器为CGI程序所设置的环境变量的使用和正常的环境变量的使用没有任何区别。当CGI程序运行结束时,Web服务器为它设置的环境变量也随着消失。

每个被激活的CGI程序都有自己唯一的一组环境变量。事实上对于一个非常繁忙的Web服务器,可能同时会有同一个CGI程序的很多个进程在运行,这时每个CGI程序的进程都有自己的运行环境,互不影响。

 

3. CGI程序对客户端的请求做出反应

CGI程序通过环境变量或其他途经读取Web服务器所提供的客户端的输入数据并对这些数据进行处理,如果有必要CGI程序还要和一些外部的服务例如Archie、WAIS和Database等发生联系。最后CGI程序将通过Web服务器将处理结果传送给客户端。CGI程序可以根据需要产生各种类型的数据。

 

4. Web服务器将CGI程序的处理结果传送给客户端

Web服务器收到了CGI程序的处理结果后将对CGI程序的输出进行检查,如有必要,将为CCI程序的输出结果加上一些HTTP协议所必须的HTTP头信息。检查完成后将把CGI程序的输出传送给客户端。

 

5. Web服务器中断和客户端浏览器的连接。

 

6. Web浏览器将CGI程序的输出显示在浏览器的窗体上。

 

标签:CGI,Web,浏览器,程序,工作,服务器,原理,客户端
From: https://blog.51cto.com/u_16131207/6364824

相关文章

  • java面试 (12)- Valiolate原理?是线程安全的吗?
    1:导致线程问题的原因:抢占式执行多个线程同时修改了同一个变量非原子性操作内存可见性问题指令重排问题2:并发编程三大特性可见性原子性有序性3:volatile关键字3.1volatile解决了内存可见性和指令重排序的问题写volatile变......
  • 关于自己找工作的一点感悟
    tip:我是从2月21日~5月1日,本文是个人看法,主观意识较强,请大家酌情参考。面试岗位:Java开发一般每天11:00~11:30和18:00~18:30分回复率最高。Boos直聘上啥都有,建议直接海投;拉钩上放出的岗位少,但是已读回复率高,都是真招聘,建议认真投;51job国企多,比较看学历和证书之类。想进大厂,多......
  • 串口通信原理
    笔记来源串行通信基础知识处理机与外部设备通信的两种方式:并行通信和串行通信并行通信是指数据的各个位用多条数据线同时进行传输。优点:传输速度快缺点:占用引脚资源多串行通信是指数据的分成一位一位的形式在一条传输线上逐个传输。优点:通信线路简单、占用引脚资源少缺......
  • ASEMI代理长电可控硅BT134的工作原理,BT134的应用领域
    编辑-Z本文将对可控硅BT134的工作原理及应用领域进行详细阐述。首先,我们将介绍可控硅BT134的基本概念和工作原理;其次,我们将探讨可控硅BT134在电力电子领域的应用;接着,我们将分析可控硅BT134在家用电器中的应用;最后,我们将讨论可控硅BT134在工业自动化领域的应用。 1、可控硅BT134的......
  • 【深入浅出Spring原理及实战】「缓存Cache开发系列」带你深入分析Spring所提供的缓存C
    缓存的理解缓存的工作机制是先从缓存中读取数据,如果没有再从慢速设备上读取实际数据,并将数据存入缓存中。通常情况下,我们会将那些经常读取且不经常修改的数据或昂贵(CPU/IO)的且对于相同请求有相同计算结果的数据存储到缓存中。它能够让数据更加接近于使用者,下图所示。+-------------......
  • ASEMI代理长电可控硅BT134的工作原理,BT134的应用领域
    编辑-Z本文将对可控硅BT134的工作原理及应用领域进行详细阐述。首先,我们将介绍可控硅BT134的基本概念和工作原理;其次,我们将探讨可控硅BT134在电力电子领域的应用;接着,我们将分析可控硅BT134在家用电器中的应用;最后,我们将讨论可控硅BT134在工业自动化领域的应用。 1、可控硅BT13......
  • 数据库系统原理-实验二
    一、实验目的:掌握使用SQL语言进行各种查询的操作和视图的操纵方法。二、实验要求:在现有的数据库上进行各种查询操作,对视图的创建、使用等操作。三、实验步骤:1、开始→程序→MicrosoftSQLServer→SQLServerManagementStudio。2、在“连接到服务器”对话框中,选择......
  • (VKL系列)超低功耗LCD液晶显示驱动IC-VKL076 SSOP28,19*4 76点阵,超低工作电流约7.5微安
    VKL076概述:VKL076是一个点阵式存储映射的LCD驱动器,可支持最大76点(19SEGx4COM)的LCD屏。单片机可通过I2C接口配置显示参数和读写显示数据,可配置4种功耗模式,也可通过关显示和关振荡器进入省电模式。其高抗干扰,低功耗的特性适用于水电气表以及工控仪表类产品。功能特点:•    ......
  • [5月摸鱼计划] 浅谈DCDC电压变换(原理、结构、可用)
    DCDC转换器简介在电子产品中,我们常需要不同的直流电压来为电路提供工作,这时我们便会见到LDO和DC/DC的身影,但是严格意义上LDO也是一种DC/DC,在电源芯片选型中,LDO和DC/DC则是两种完全不同的芯片。与线性稳压器LDO相比较,效率高是DC/DC的显著优势,通常效率在70%以上,效率高的可达到95%以上......
  • java中HashMap的实现原理
    HashMap是Java中常用的一种存储结构,它通过哈希表实现了快速查找数据的功能,下面是它的具体实现原理:HashMap内部存储结构HashMap的内部实现是一个数组和一个链表组成的。数组称为哈希表,用于保存实际存储的数据,链表则用于处理哈希冲突,即不同的键值对可能会被存储到哈希表的同一个位置......