大家好,欢迎来到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快。
安装配置如下:
https://groups.google.com/g/netkiller/c/IF050Z78AlIhttps://groups.google.com/g/netkiller/c/IF050Z78AlI
三、CGI(协议)
http://www.graphcomp.com/info/specs/cgi11.html
(Common Gateway Interface) 代表“通用网关接口”。 它是一个标准协议,定义 Web 服务器如何与外部应用程序或脚本交互以处理 HTTP 请求并生成动态 Web 内容。 在 PHP、Python 和 Ruby 等服务器端脚本语言出现之前,CGI 是最早用于动态网页生成的方法之一。
当客户端(通常是 Web 浏览器)向 Web 服务器发送 HTTP 请求时,服务器会处理该请求,并且在静态内容(如 HTML 和图像)的情况下,直接提供所请求的文件。 然而,当请求的内容是动态的并且需要即时生成时,服务器可以使用CGI与外部程序通信来进行处理。
以下是 CGI 工作原理的基本概述:
- 1. 客户端向 Web 服务器发送 HTTP 请求。
- 2. Web服务器接收请求并识别出请求的内容需要动态处理。
- 3. Web 服务器将请求连同请求中的必要环境变量和数据(例如,查询参数、表单数据等)一起传递给 CGI 程序或脚本。
- 4. CGI 程序处理请求并生成动态内容,通常采用 HTML 形式。
- 5. CGI程序将生成的内容发送回Web服务器。
- 6. Web 服务器将 HTTP 响应中的动态内容返回给客户端,客户端将其呈现在 Web 浏览器中。
CGI 程序可以用各种编程语言编写,例如 Perl、Python、Ruby、C、C++ 等。它们作为与 Web 服务器分开的进程执行,这意味着对 CGI 程序的每个请求都会产生启动新进程的开销。
虽然 CGI 在当时具有革命性意义并支持动态 Web 内容,但它也有一定的局限性,包括性能开销和可扩展性问题。 因此,现代 Web 开发已在很大程度上摆脱了 CGI,转而采用更高效、可扩展的服务器端脚本技术,例如 PHP、Node.js 和各种应用程序框架。
如今,CGI 主要用于需要与遗留系统或专用环境兼容的特定情况。 对于通用 Web 开发,首选更高效的替代方案。
https://ycchen.im.ncnu.edu.tw/cgi/
四、fastCGI(协议)
- 1. 客户端向 Web 服务器发送 HTTP 请求。
- 2. Web 服务器通过套接字或 TCP/IP 连接将请求以及必要的环境变量和请求数据传递给 FastCGI 应用程序。
- 3. FastCGI 应用程序处理请求并生成动态内容(例如,HTML、JSON 等)。
- 4. FastCGI 进程并没有终止应用程序进程,而是保持活动状态并等待下一个请求。
- 5. Web 服务器接收来自 FastCGI 应用程序的响应,并在 HTTP 响应中将其发送回客户端。
FastCGI 与传统 CGI 相比具有以下几个优点:
- 1. 减少开销:通过重用应用程序进程,FastCGI 消除了为每个请求创建和终止进程的开销。
- 2. 改进的性能:持久进程池可以加快后续请求的响应时间,因为应用程序不需要为每个新请求重新加载。
- 3. 资源效率:与为每个请求生成新进程相比,持久进程池消耗的资源更少。
- 4. 可扩展性:FastCGI允许Web服务器处理更高数量的并发请求,提高Web应用程序的可扩展性。
参考文章:CGI、FastCGI和PHP-FPM关系图解 – 歪麦博客
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/125121.html