搞清Lighttpd、webserver、CGI、fastCGI这几个概念

搞清Lighttpd、webserver、CGI、fastCGI这几个概念网页浏览也是网络通信 浏览器相当于 TCPclient 客户端程序 和浏览器相对应的是机房里运行的网站服务器 里面运行着 TCPserver 服务端程序 因为网页传输使用的是 HTTP 协议 加密的是 HTT

大家好,欢迎来到IT知识分享网。

一、webserver:

网页浏览也是网络通信,浏览器相当于TCPclient客户端程序,和浏览器相对应的是机房里运行的网站服务器,里面运行着TCPserver服务端程序,因为网页传输使用的是HTTP协议(加密的是HTTPS协议),所以这个TCPserver程序必须按照HTTP协议(也就是按照HTTP协议来组包)来开发,因为这种程序专用于网站,所以叫webserver/httpserver。技术高超的公司可以自己开发,已经有很成熟的开源webserver。在UNⅨ和LINUX平台下使用最广泛的免费HTTP服务器是Apache和Nginx服务器,而Windows平台NT/2000/2003使用ⅡS的WEB服务器。

在嵌入式中常见的轻量级的服务器有:Lighttpd、 Shttpd,、Thttpd、Boa、Mini_httpd、Appweb、Goahead。

二、Lighttpd

LigHttpd是一个开源的轻量级嵌入式Web server,是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的web server环境。具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。

lighttpd是Lighty HTTP Server的缩写,是一个开源的Web服务器,,lighttpd (http://lighttpd.net/)和apache一样是开源的,与apache相比,虽然功能不及apache完善,稳定性也不如 apache,但是,不管是服务静态页面,还是服务动态内容(CGI,PHP),它都比apache快。

安装配置如下:

搞清Lighttpd、webserver、CGI、fastCGI这几个概念

搞清Lighttpd、webserver、CGI、fastCGI这几个概念

搞清Lighttpd、webserver、CGI、fastCGI这几个概念

https://groups.google.com/g/netkiller/c/IF050Z78AlIhttps://groups.google.com/g/netkiller/c/IF050Z78AlI

三、CGI(协议)

http://www.graphcomp.com/info/specs/cgi11.html

搞清Lighttpd、webserver、CGI、fastCGI这几个概念

(Common Gateway Interface) 代表“通用网关接口”。  它是一个标准协议,定义 Web 服务器如何与外部应用程序或脚本交互以处理 HTTP 请求并生成动态 Web 内容。  在 PHP、Python 和 Ruby 等服务器端脚本语言出现之前,CGI 是最早用于动态网页生成的方法之一
当客户端(通常是 Web 浏览器)向 Web 服务器发送 HTTP 请求时,服务器会处理该请求,并且在静态内容(如 HTML 和图像)的情况下,直接提供所请求的文件。  然而,当请求的内容是动态的并且需要即时生成时,服务器可以使用CGI与外部程序通信来进行处理。
以下是 CGI 工作原理的基本概述:

  1. 1. 客户端向 Web 服务器发送 HTTP 请求。
  2. 2. Web服务器接收请求并识别出请求的内容需要动态处理。
  3. 3. Web 服务器将请求连同请求中的必要环境变量和数据(例如,查询参数、表单数据等)一起传递给 CGI 程序或脚本。
  4. 4. CGI 程序处理请求并生成动态内容,通常采用 HTML 形式。
  5. 5. CGI程序将生成的内容发送回Web服务器。
  6. 6. Web 服务器将 HTTP 响应中的动态内容返回给客户端,客户端将其呈现在 Web 浏览器中。

CGI 程序可以用各种编程语言编写,例如 Perl、Python、Ruby、C、C++ 等。它们作为与 Web 服务器分开的进程执行,这意味着对 CGI 程序的每个请求都会产生启动新进程的开销
虽然 CGI 在当时具有革命性意义并支持动态 Web 内容,但它也有一定的局限性,包括性能开销和可扩展性问题。  因此,现代 Web 开发已在很大程度上摆脱了 CGI,转而采用更高效、可扩展的服务器端脚本技术,例如 PHP、Node.js 和各种应用程序框架。
如今,CGI 主要用于需要与遗留系统或专用环境兼容的特定情况。  对于通用 Web 开发,首选更高效的替代方案。

搞清Lighttpd、webserver、CGI、fastCGI这几个概念

https://ycchen.im.ncnu.edu.tw/cgi/

四、fastCGI(协议)

  1. 1. 客户端向 Web 服务器发送 HTTP 请求。
  2. 2. Web 服务器通过套接字或 TCP/IP 连接将请求以及必要的环境变量和请求数据传递给 FastCGI 应用程序。
  3. 3. FastCGI 应用程序处理请求并生成动态内容(例如,HTML、JSON 等)。
  4. 4. FastCGI 进程并没有终止应用程序进程,而是保持活动状态并等待下一个请求。
  5. 5. Web 服务器接收来自 FastCGI 应用程序的响应,并在 HTTP 响应中将其发送回客户端。

FastCGI 与传统 CGI 相比具有以下几个优点:

  1. 1. 减少开销:通过重用应用程序进程,FastCGI 消除了为每个请求创建和终止进程的开销。
  2. 2. 改进的性能:持久进程池可以加快后续请求的响应时间,因为应用程序不需要为每个新请求重新加载。
  3. 3. 资源效率:与为每个请求生成新进程相比,持久进程池消耗的资源更少。
  4. 4. 可扩展性:FastCGI允许Web服务器处理更高数量的并发请求,提高Web应用程序的可扩展性。

参考文章:CGI、FastCGI和PHP-FPM关系图解 – 歪麦博客

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/125121.html

(0)
上一篇 2025-09-30 14:26
下一篇 2025-09-30 14:45

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信