CGI/MIME/servlet术语解释

CGI→一种协议, 一种标准, 一种规范

       使用CGI协议, 能够让用户访问某些动态资源的时候, 触发web服务器, 让web服务器根据CGI协议能够调用外部(web服务器外部)的程序来执行处理这个动态资源. 这些外部的程序将这些动态资源执行后, 并格式化html文本文件后交由web服务器, web服务器再将其传输给客户端.

通常来说web服务器只能服务于静态页面, 但是用户请求的资源可以是多种多样的. 比如视频, 音频等. 但web服务器只能解释纯文本的html格式的文件, 后来借助于MIME可以解析更多的文档→通过MIME技术和http协议, 将用户请求的各种资源都转换为文本格式进行传输, 传输到客户端后 ,客户端浏览器再通过MIME的各种插件, 将其解释会原来的格式, 即如果是视频,插件在客户端将其还原为视频.

MIME (Multipurpose Internet Mail Extensions) 是描述消息内容类型的因特网标准,MIME 消息能包含文本、图像、音频、视频以及其他应用程序专用的数据.

servlet→一种规范, 一种API, 一种使用java语言实现的CGI技术

       web服务器只能处理静态页面, 这是事实, 但是当用户请求了一个动态程序, web服务器借助于CGI处理后, 得到一段格式化后的纯文本内容.这段文本内容仅仅是这个动态程序被CGI协议转换后的文本, 它本身是不带有<html><title>这种标签的, CGI技术也实现不了, html标签由web服务器提供, 而数据由动态程序提供这种功能. 但是我们知道的是, 浏览器显示某个页面的时候都是有格式的. 比如<html><title></title></html>. 那么CGI转换后纯文本格式发给浏览器后, 浏览器就会无法解析. 因为浏览器只能解析html标签中的内容. 所以说如果一个用户请求了动态资源,那么动态资源的解析和为该解析结果添加html标签的工作, 都统一由后台的程序来提供. 这样带来一个新的问题. 那就是后台程序都是由程序语言开发后进行编译, 然后print出来. 这样如果由于一个标签的问题, 那么就必须重新编译该程序. 这样就非常麻烦. 于是就出现了框架. 比如MVC.

原文地址:https://www.cnblogs.com/wxylog/p/9217671.html