CGI(通用网关接口)是向用户提供动态内容的首次尝试。它允许用户执行一个驻扎在服务器中的程序来处理数据,甚至访问数据库,以产生相关内容。由于这些是程序,它们是在本地操作系统中编写的,然后存储在一个特定的目录中。servlet是Java的一种实现,旨在提供与CGI相同的服务,但它不是在本地操作系统中编译的程序,而是编译成Java字节码,然后在Java虚拟机中运行。尽管Java程序可以被编译成本地代码,但它们仍然倾向于用Java字节码编译。

与CGI相比,servlets的第一个优势在于其平[破坏统一]立性。只要安装了JVM,Servlets就可以在任何操作系统上运行,这意味着即使我们选择切换操作系统,也不会有任何问题。对于CGI,切换操作系统是一个困难和费力的过程,因为你需要在新的操作系统中重新编译程序。

由于我们在CGI中运行的是独立的程序,它们在执行的时候会创建自己的进程,而Servlet则不会这样,因为它们只是在JVM的内存空间中共享。这可能会导致与开销有关的问题,特别是当用户数量成倍增加时。它还会产生漏洞问题,因为一旦程序在服务器上运行,它就不会受到任何控制。

后来,使用CGI时更常见的方法是通过脚本。这减少了创建程序所需的时间,而且通常更安全。使用CGI,可以立即运行脚本,而servlets 需要将脚本翻译成Java,并将其编译成servlet,这就增加了一点加载时间。

CGI和Servlet的区别

  1. CGI可以直接处理脚本,而它需要经过翻译和编译才能作为servlet运行。
  2. CGI比servlets更容易受到攻击。
  3. CGI程序作为独立的进程在计算机上运行,而servlets在JVM上运行
  4. CGI程序依赖于平台,而servlets是独立于平台的。
  5. CGI通常是服务器操作系统的原生可执行文件,尽管servlets也可以被编译为原生操作系统它可以被编译为Java字节码,然后在JVM上运行。
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。
转载请注明:文章转载自 有区别网 [http://www.vsdiffer.com]
本文标题:CGI和Servlet的区别
本文链接:https://www.vsdiffer.com/vs/difference-between-cgi-vs-servlet.html
免责声明:以上内容仅是站长个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。