从nginx的运行联想到的Servlet和 CGI

本文探讨了CGI和Servlet的运行过程及其对比,解释了CGI作为动态页面生成的早期技术,以及其在高并发场景下的性能问题。Servlet作为Java Web开发的标准,提供了更好的性能和数据共享能力。此外,文章还介绍了FastCGI对CGI的改进,允许进程跨主机处理请求,提高系统的可扩展性。
摘要由CSDN通过智能技术生成

今天看nginx的时候,虽然基本的配置和使用可以照着网上的教程即可,但是对于nginx的运行原理一直不是很理解,包括其中的概念,其中最困惑的就是FastCGI这一套东西,始终无法理解这套机制是怎么运行的?通过查资料发现,要理解FastCGI首先要知道CGI是什么,“通用网关接口(Common Gateway Interface)”,一看就是让人懵圈的名词,要想彻底明白什么是CGI,有必要回溯一下Web技术的发展。

最一开始的时候,Web浏览器中展现的完全是静态页面,与用户的交互几乎没有,所以这时候的使用主要还是局限在页面的展示,比如说介绍一些产品,或者发布一些信息。现在在网上看一下静态的技术文档的时候,其实这时候使用的技术在Web早期的时候就能实现,但是随着互联网的发展,迫切需要与应用程序进行交互,如果要实现交互,使用静态页面是不行的,这就需要根据用户的需求来动态的展示页面。这时候CGI就出现了。

所以要明确的一点是CGI是为了生成动态页面而发展形成的。

  • 因为早期生成动态页面的动作是在Web服务器端完成的(虽然现在的趋势有点前后端分离的感觉,页面的生成可以完全靠前端的JavaScript来完成),所以这种技术是一种服务端技术。
  • 还要明白的是CGI不是一种具体的实现技术,比如说Java或者Python等编程语言,严格的说,它更像是Http或者TCPUDP等等的一种协议,具体规定了动态页面怎么生成,从它的名字“接口”也可以看出,这其实只是一种规范而已;

一、 CGI和Servlet的运行过程

由于我的主语言是Java,手里开发的项目主要是Java Web那一套东西,而且恰好由于Java Web的核心内容Servlet正是与CGI是作为Web技术中底层数据传输的两个分支,它们生成动态页面的方式也是迥异的。其实如果想要更容易的理解什么是CGI,以及与Servlet有什么区别?首先要明白的是什么是Web Server?什么是Servlet Container?如果这两个概念能够区分清楚对于理解CGI是很有帮助的。

那么CGI技术是怎样在生成动态页面的过程中起作用的呢

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值