在90年代初期如何解释HTML表单?


109

在现代网络中,<form>提交了HTML 元素,然后通过脚本对其进行解释。它可以由服务器端编程语言(通常为PHP)解释,也可以由客户端脚本(几乎始终为JavaScript)解释。

形式甚至在90年代初期就已经存在。当时他们是如何解释的?

根据这篇Wikipedia的文章,当时有基于电子邮件的HTML表单提交,但这是不可靠的。这就是全部吗?如果没有脚本,HTML为什么甚至没有表单呢?还是只是鸡蛋和鸡蛋这种情况?


25
我将perl与cgi一起使用

67
总是有服务器端脚本编写
OrangeDog

22
为了完成此图,使用了一些早期的表格,这些表格action="mailto:staff@example.com"告诉Web浏览器启动电子邮件客户端,并将提交的字段作为新电子邮件的原始内容进行传输。零编程,只有一些人员可以手工处理电子邮件。
kubanczyk

2
在表单之前,甚至有<ISINDEX>,通常将其插入WAIS服务器。
zwol

Answers:


182

在服务器端脚本编写(PHP,Ruby,node.js)之前,需要进行服务器端编程。

Web服务器和后端进程之间的原始接口之一是通用网关接口(CGI)。它是在90年代初由NCSA后端团队引入的,与此同时,Tim Berners-Lee(当时也是NCSA的成员)也将表单引入了HTML。因此,大约在发明CGI的同时引入了表格。

最初,很多人用C编写CGI程序。我是必须做作业的人之一。我们编写了一个小的C程序,从stdin读取并打印到stdout(我们打印了HTTP响应,而不仅仅是CGI规范的HTML),而不是一个庞大的,无所不包的框架。一个网站上有许多这样的小程序,每个程序都做一件小事,并更新了一些数据库(有时该数据库只是一个平面文件)。

几乎一经引入,人们就开始在Perl中编写CGI脚本。因此,实际上C程序和脚本语言之间没有过渡期。人们只是停止使用C语言编写CGI脚本,因为用脚本语言编写CGI脚本更快。


4
您和@Dekel的回答都很好。这些答案和建议的链接确实可以填补空白。我不禁要问,在有JS,Perl,PHP之类的技术可用于Web脚本编写之前,有多少个网站实际上困扰着实现这些东西。但这又是一个问题。
詹姆斯·琼斯

15
@JamesJones,我们很多人做到了。尽管缺乏用于扩展到大型高性能Web应用程序的工具,但入门并不难。我在90年代末期在万维网上阅读了CGI编程,并从小就开始编写各种CGI代码。
Dan Lenski

12
实际上,基本的 CGI程序很容易编写。只需打印一些静态标头,然后将一些HTML插入数据即可。仅仅是该技术(HTML与标头混合与代码混合...)不能很好地扩展到复杂的应用程序。因此,发明了框架...
sleske,2016年

12
如果您仍然希望看到CGI的实际效果,请尝试瑞士铁路时间表:sbb.ch-输入出发地和目的地位置-按下红色按钮-然后在浏览器中查看URL,尤其是query.exe部分: -)
theDmi '16

8
以“它有多广泛”为例:那时,还有更多的网站是完全静态的。但是,活动内容中经常看到的两个部分是“留言簿”(博客/社交媒体/垃圾邮件已淘汰)和“命中柜台”。
pjc50

70

服务器端实际上总是出现在图片中。

Apache HTTP服务器是可用的,因为1995年,并在1996年也有Perl支持(这是用来作为服务器端编程语言)。

JavaScript 创建于1996年,Netscape是第一个支持客户端语言的浏览器(其他浏览器供应商的实现均基于Netscape所做的工作)。

1993年发布了Mosaic浏览器,它支持图像,嵌套列表和填写表格。

基本上-每个可以处理请求并将其传递给某个应用程序(无论使用哪种语言编写的HTTP服务器)都是服务器端应用程序。它可以用脚本语言(Perl / Python / PHP / Ruby),高级语言(Java / C#)编写,如果需要,甚至可以汇编。您需要做的就是确保您“遵循协议”。


1
良好的历史。已投票。但是,表格是在1995年之前实施的。我无法确定何时才能发布,但是在en.wikipedia.org/wiki/HTML中,有没有Dave Raggett's competing Internet-Draft, "HTML+ (Hypertext Markup Format)", from late 1993, suggested standardizing already-implemented features like tables and fill-out forms.最后一段描述1995年之前的做法?
詹姆斯·琼斯

3
@JamesJones:检查Common Gateway Interface上的Wikipedia条目
slebetman's

2
@JamesJones,添加了有关“马赛克浏览器”和填写表格的一些信息。slebetman对CGI也有很好的回答。
Dekel

1
@JamesJones标准并不明确,它完全适用于网络上的大多数事物(尽管不是整个互联网)。HTML标准是(而且实际上仍然是)可怕的,每个人都创建了自己的扩展名。Mosaic,Netscape和Internet Explorer是最臭名昭著的-大多数扩展都添加到了后来的HTML标准中,而Netscape和IE在这方面进行了相当多的合作。HTML当时甚至没有嵌入图像(img)-作者认为它不适合超文本的想法;只有Mosaic / Netscape的成功才迫使更改标准。
a安

3
这个答案不一定是错误的,但是我不确定在浏览器中的表单可用后至少2-3年引入的内容是否证明服务器端始终支持表单。
8bittree '16

1

JavaScript并不是那么先进(地狱Ajax还没有出来)。因此,它是纯服务器端的。主要是CGI(Perl)和PHP。

也有Coldfusion,但不是受欢迎的收藏。

最终,在1999年底和2000年代初,ASP.NET(aspx)和JavaServer Pages(jsp)出现了,尽管许多商业站点出于明显的原因使用了aspx和jsp。

注意,Java applet也存在(虽然主要用于渲染),但必须单独下载并由浏览器支持。


3
实际上,我在1998年初就对ASP进行了编程。在此之前,还有另一个MS标准称为htx模板。
Little Santi

1
^听起来您是原著之一!很久以前的队友!:D:D
tfont

1

此外,我偶然发现了Wikipedia上一段有趣的历史。HTML表单也可以使用属性中的mailto:地址通过电子邮件发送target。似乎并不流行,但仍然很酷!

引用维基百科文章

在HTML 3.2时代,RFC 1867第5.6节提出了使用“ mailto” URL作为表单操作的基于电子邮件的HTML表单提交的用户代理支持。各种Web浏览器通过调用单独的电子邮件程序或使用其自身的基本SMTP功能来实现它。尽管有时不可靠,但它作为一种不涉及Web服务器或CGI脚本而传输表单数据的简单方法而短暂流行。

和RFC 1867(1995年11月):

5.6允许ACTION表格为“ mailto:”

独立于此提议,对于HTML
解释用户代理来说,将ACTION形式作为
“ mailto:” URL 将非常有用。无论有没有这个
建议,这似乎都是一个好主意。同样,通过邮件收到的HTML表单的ACTION可能应该默认为消息的“回复:”。
这两个提议将允许HTML表单通过HTTP
服务器提供,但通过邮件发送回去,或者允许HTML表单
通过邮件发送,由支持HTML的邮件收件人填写,然后将结果邮寄回去。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.