Các biểu mẫu HTML được diễn giải như thế nào vào đầu những năm 90?


109

Trong web hiện đại, một HTML <form> phần tử được gửi và sau đó được giải thích bằng cách viết mã. Hoặc nó được thông dịch bởi một ngôn ngữ lập trình phía máy chủ (thường là PHP) hoặc nó được thông dịch bởi một tập lệnh phía máy khách (hầu như luôn luôn là JavaScript).

Các hình thức đã tồn tại ngay cả vào đầu những năm 90. Làm thế nào họ được giải thích trở lại sau đó?

Theo bài viết Wikipedia này, hồi đó có một email gửi biểu mẫu HTML, nhưng nó không đáng tin cậy. Có phải tất cả những thứ này đã có? Tại sao HTML thậm chí còn có các biểu mẫu nếu chúng rất vô dụng nếu không có script? Hay đó là một tình huống gà và trứng?


25
i sử dụng perl với cgi

67
Luôn luôn có tập lệnh phía máy chủ
OrangeDog

22
Để hoàn thành bức tranh, một số biểu mẫu ban đầu được sử dụng action="mailto:staff@example.com"yêu cầu trình duyệt web khởi động ứng dụng khách e-mail và chuyển các trường đã gửi dưới dạng nội dung thô của e-mail mới. Không lập trình, chỉ cần một số nhân viên xử lý e-mail bằng tay.
kubanczyk

2
Trước khi có biểu mẫu, thậm chí còn có <ISINDEX>, thường được cắm vào máy chủ WAIS .
zwol

Câu trả lời:


182

Trước khi lập trình phía máy chủ (PHP, Ruby, node.js) đã có lập trình phía máy chủ.

Một trong những giao diện ban đầu giữa máy chủ web và các quy trình back-end là Giao diện cổng chung (CGI). Nó được giới thiệu vào đầu những năm 90 bởi nhóm back-end của NCSA cùng lúc các biểu mẫu được đưa vào HTML bởi Tim Berners-Lee (lúc đó cũng đang ở NCSA). Vì vậy, các biểu mẫu đã được giới thiệu cùng lúc với CGI được phát minh.

Ban đầu, rất nhiều người viết chương trình CGI bằng C. Tôi là một trong những người phải làm như vậy như một bài tập về nhà. Thay vì một khuôn khổ khổng lồ bao gồm tất cả, chúng tôi đã viết các chương trình C nhỏ đọc từ stdin và in sang stdout (chúng tôi in phản hồi HTTP, không chỉ HTML theo thông số kỹ thuật CGI). Một trang web có rất nhiều chương trình nhỏ này, mỗi chương trình làm một việc nhỏ và cập nhật một số cơ sở dữ liệu (đôi khi cơ sở dữ liệu đó chỉ là một tệp phẳng).

Gần như ngay sau khi nó được giới thiệu, mọi người cũng bắt đầu viết kịch bản CGI trong Perl. Vì vậy, thực sự không có giai đoạn chuyển tiếp giữa các chương trình C và các ngôn ngữ kịch bản. Mọi người chỉ đơn giản là ngừng viết tập lệnh CGI bằng C vì nó nhanh hơn để làm điều đó trong các ngôn ngữ kịch bản.


4
Câu trả lời tuyệt vời từ cả bạn và @Dekel. Những câu trả lời này và các liên kết gợi ý thực sự lấp đầy khoảng trống. Tôi không thể không tự hỏi có bao nhiêu trang web thực sự bận tâm đến việc triển khai bất kỳ thứ nào trong số này trước khi các công nghệ như JS, Perl, PHP có sẵn cho web scripting. Nhưng đó là một câu hỏi cho một ngày khác.
James Jones

15
@JamesJones, rất nhiều người trong chúng tôi đã làm được. Tất cả đều không quá khó để bắt đầu, mặc dù thiếu các công cụ để mở rộng quy mô lên các ứng dụng web lớn và hiệu suất cao. Tôi đọc Lập trình CGI trên World Wide Web vào cuối những năm 90 và bắt đầu viết tất cả các loại mã CGI khi còn là một thiếu niên.
Dan Lenski,

12
Trên thực tế, một chương trình CGI cơ bản rất dễ viết. Chỉ cần in ra một số tiêu đề tĩnh và một số HTML có xen kẽ dữ liệu của bạn. Chỉ là công nghệ (HTML trộn với tiêu đề trộn với mã ...) không mở rộng tốt cho các ứng dụng phức tạp. Do đó các khuôn khổ đã được phát minh ...
sleske

12
Nếu bạn vẫn muốn xem CGI đang hoạt động, hãy thử lịch trình đường sắt Thụy Sĩ: sbb.ch - nhập vị trí khởi hành và điểm đến - nhấn nút màu đỏ - sau đó xem URL trong trình duyệt, đặc biệt là phần query.exe: -)
theDmi

8
Về "mức độ phổ biến của nó": tốt, rất nhiều trang web đã hoàn toàn tĩnh vào thời đó. Nhưng hai phần nội dung hoạt động thường thấy là "sổ lưu bút" (bị chặn bởi blog / mạng xã hội / thư rác) và "bộ đếm lượt truy cập".
pjc50

70

Phía máy chủ thực sự luôn ở trong ảnh.

Các Apache HTTP Server đã có sẵn từ năm 1995, và vào năm 1996 nó cũng đã hỗ trợ Perl (được sử dụng như một ngôn ngữ lập trình server-side).

JavaScript được tạo ra vào năm 1996 và Netscape là trình duyệt đầu tiên hỗ trợ ngôn ngữ phía máy khách (các triển khai của nhà cung cấp trình duyệt khác dựa trên công việc đã được thực hiện trong Netscape).

Năm 1993 , trình duyệt Mosaic được phát hành với sự hỗ trợ cho hình ảnh, danh sách lồng nhau và biểu mẫu điền.

Về cơ bản - mọi máy chủ HTTP có thể xử lý yêu cầu và chuyển nó đến một số ứng dụng (bất kể ứng dụng đó được viết bằng ngôn ngữ nào) đều là một ứng dụng phía máy chủ. Nó có thể được viết bằng ngôn ngữ kịch bản (Perl / Python / PHP / Ruby), ngôn ngữ cấp cao (Java / C #) và nếu bạn thực sự muốn - thậm chí là lắp ráp. Tất cả những gì bạn cần làm là đảm bảo rằng bạn "tuân theo giao thức".


1
Lịch sử tốt. Đã ủng hộ. Tuy nhiên, các biểu mẫu đã được triển khai trước năm 1995. Tôi không thể tìm ra chỉ khi nào, nhưng trong 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.đoạn văn cuối cùng của bạn mô tả các thông lệ trước năm 1995 không?
James Jones

3
@JamesJones: Kiểm tra mục nhập wikipedia trên Giao diện cổng chung
slbetman

2
@JamesJones, đã thêm một số thông tin liên quan đến Trình duyệt Mosaic và các biểu mẫu điền vào. Bạn cũng có một câu trả lời tuyệt vời của nhà điều hành về CGI.
Dekel

1
@JamesJones Tiêu chuẩn không rõ ràng và nó áp dụng đầy đủ cho hầu hết mọi thứ trên web (mặc dù không phải toàn bộ internet). Tiêu chuẩn HTML đã (và thực sự, vẫn là) rất kinh khủng và mọi người đều tạo ra các tiện ích mở rộng của riêng họ. Mosaic, Netscape và Internet Explorer là nổi tiếng nhất - hầu hết các phần mở rộng của chúng đã được thêm vào các tiêu chuẩn HTML sau này, với Netscape và IE đã hỗ trợ khá nhiều cho điều đó. HTML thậm chí không có hình ảnh nhúng ( img) hồi đó - tác giả cho rằng nó không phù hợp với ý tưởng siêu văn bản; chỉ có sự thành công của Mosaic / Netscape mới buộc phải thay đổi tiêu chuẩn.
Luaan

3
Câu trả lời này không nhất thiết là sai, nhưng tôi không chắc cách mọi thứ được giới thiệu ít nhất 2-3 năm sau khi biểu mẫu có sẵn trong trình duyệt là bằng chứng cho thấy luôn có sự hỗ trợ từ phía máy chủ cho các biểu mẫu.
8bittree

1

JavaScript không tiến bộ như vậy (địa ngục Ajax thậm chí còn chưa ra đời). Vì vậy, nó là thuần túy phía máy chủ. Chủ yếu là CGI (là Perl) và PHP.

Cũng có Coldfusion nhưng không được yêu thích phổ biến.

Cuối cùng, vào cuối năm 1999 và đầu những năm 2000 ASP.NET (aspx) và JavaServer Pages (jsp) ra đời, mặc dù rất nhiều trang thương mại đã sử dụng aspx và jsp vì những lý do rõ ràng.

Lưu ý, các applet Java cũng tồn tại (mặc dù chủ yếu là để kết xuất) nhưng phải được tải xuống và hỗ trợ riêng bởi trình duyệt.


3
Trên thực tế, tôi đã lập trình ASP vào đầu năm 1998. Trước đó, có một tiêu chuẩn MS khác được gọi là htxmẫu.
Little Santi

1
^ có vẻ như bạn là một trong những người gốc! Lâu lắm rồi bạn ơi! : D: D
tfont

1

Ngoài ra, tôi tình cờ tìm thấy một đoạn lịch sử thú vị trên Wikipedia. Các biểu mẫu HTML cũng có thể được gửi qua e-mail, sử dụng một mailto:địa chỉ trong targetthuộc tính. Có vẻ như không được phổ biến, nhưng vẫn tuyệt vời!

Trích dẫn bài viết trên Wikipedia :

Hỗ trợ tác nhân người dùng để gửi biểu mẫu HTML dựa trên email, sử dụng URL 'mailto' làm hành động biểu mẫu, đã được đề xuất trong RFC 1867 phần 5.6, trong kỷ nguyên HTML 3.2. Các trình duyệt web khác nhau đã triển khai nó bằng cách gọi một chương trình email riêng biệt hoặc sử dụng các khả năng SMTP thô sơ của riêng chúng. Mặc dù đôi khi không đáng tin cậy, nhưng nó đã được phổ biến một thời gian ngắn như một cách đơn giản để truyền dữ liệu biểu mẫu mà không liên quan đến máy chủ web hoặc tập lệnh CGI.

Và RFC 1867 (tháng 11 năm 1995):

5.6 Cho phép biểu mẫu ACTION là "mailto:"

Không phụ thuộc vào đề xuất này, nó sẽ rất hữu ích cho việc
thông dịch HTML các tác nhân người dùng để cho phép một HÀNH ĐỘNG trong biểu mẫu là một
URL "mailto:". Đây có vẻ là một ý tưởng hay, dù có hoặc không có
đề xuất này . Tương tự, ACTION cho một biểu mẫu HTML được nhận qua thư có thể sẽ được đặt mặc định là "reply-to:" của thư.
Hai đề xuất này sẽ cho phép các biểu mẫu HTML được phân phát qua
máy chủ HTTP nhưng được gửi lại qua thư, hoặc cách khác, cho phép các biểu mẫu HTML
được gửi qua thư, do người nhận thư nhận biết HTML điền và kết quả được gửi lại.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.