CGI的工作流程是首先由浏览器将用户输入的数据传递给Web服务器,Web服务器根据接收到的数据设置环境变量并启动CGI脚本,CGI脚本从环境变量中读取所需要的数据并进行相应处理,最后使用STDOUT输出HTML形式的结果文件,经Web服务器送回浏览器,最终显示给用户。传统的CGI程序与服务器代码分开,是一个符号CGI标准的可执行文件,并储存在CF卡等存储设备上,一般用脚本语言编写。考虑到嵌入式HTTP服务器要求速度快,功能和代码都尽可能精简的特点,可以把原先由可执行文件完成的功能用C函数实现,放在服务器代码内部,并直接从HTTP请求报文接收数据。与传统CGI程序相比,这种方法具备如下特点:

*不需要标准输入,CGI函数可以直接获取到浏览器送来的信息;

*不需要标准输出,CGI函数可以直接将数据送回给浏览器;

*不需要环境变量,CGI和Web服务器在同一程序中实现,不需要环境变量来交换信息。

3.3 自定义标记

要在网页中显示工控系统中大量的实时数据,常规方法是将HTML代码直接集成到程序代码中,或者反之将C程序代码集成到HTML标记语言中。这两种方法均要求开发人员对HTML标记语言的语法细节非常熟悉。网页或程序结构的单方面调整都将导致整个系统全盘修改,系统不具备灵活性与可扩展性。HTML的精髓在于该语言的“标记”性,各种不同标记的具体含义是由服务器和浏览器进行解析。因此,当现有标记不能满足新的应用需求时,可以自行定义新的标记,只需服务器将自定义标记解析为标准标记,然后传送给浏览器即可。在本项目中,主要的实时数据转速、重量、一氧化碳含量等状态信息,可以定义相应的标记。服务器中解析相应标记的函数同样用C语言来实现。运行时,当客户端发出查看某实时网页的请求后,嵌入式HTTP服务器将相应的网页文件从电子盘加载到内存进行逐项解析。当辨识出自定义标记后,就调用相应的函数。该函数返回该标记对应的当前值,并置换HTML文件流中的自定义标记。最后,嵌入式HTTP服务器将解析结果发送给客户端。实时网页的设计与相应的HTTP服务器处理程序得以分离,处于一种弱耦合关联状态。这样,网页界面的调整不会影响HTTP服务器的程序设计,HTTP服务器程序的修改也与网页界面设计无关,整个嵌入式HTTP服务器具备灵活性和可扩展性。

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查