CGI là một giao diện cổng chung. Như tên của nó, nó là một giao diện cổng "chung" cho mọi thứ. Nó thật tầm thường và ngây thơ từ cái tên. Tôi cảm thấy rằng tôi hiểu điều này và tôi cảm thấy điều này mỗi khi tôi gặp từ này. Nhưng thành thật mà nói, tôi đã không. Tôi vẫn còn bối rối.
Tôi là một lập trình viên PHP có kinh nghiệm phát triển web.
yêu cầu người dùng (máy khách) cho trang ---> máy chủ web (-> trình thông dịch PHP nhúng) ----> Tập lệnh phía máy chủ (PHP) ---> Máy chủ MySQL.
Bây giờ hãy nói PHP Script của tôi có thể tìm nạp kết quả từ máy chủ MySQL & máy chủ MATLAB và một số máy chủ khác.
Vì vậy, bây giờ PHP Script là CGI? Bởi vì giao diện của nó cho giữa máy chủ web & Tất cả các máy chủ khác? Tôi không biết. Đôi khi họ gọi CGI, một công nghệ và những lần khác họ gọi CGI là chương trình hoặc một số máy chủ khác.
Chính xác thì CGI là gì?
Vấn đề lớn là
/cgi-bin/*.cgi
gì? Có chuyện gì thế này? Tôi không biếtcgi-bin
thư mục này trên máy chủ để làm gì. Tôi không biết tại sao họ có phần mở rộng * .cgi.Tại sao Perl luôn luôn cản trở. CGI & Perl (ngôn ngữ). Tôi cũng không biết chuyện gì với hai người này. Hầu như tất cả thời gian tôi liên tục nghe hai kết hợp này "CGI & Perl". Cuốn sách này là một ví dụ tuyệt vời khác về lập trình CGI với Perl . Tại sao không "Lập trình CGI với PHP / JSP / ASP"? Tôi chưa bao giờ thấy những điều như vậy.
Lập trình CGI trong C , làm tôi bối rối rất nhiều. " Trong C " ?? Nghiêm túc?? Tôi không biết phải nói gì. Tôi chỉ bối rối. " Trong C " ?? Điều này thay đổi mọi thứ. Chương trình cần phải được biên dịch và thực hiện. Điều này hoàn toàn thay đổi quan điểm của tôi về lập trình web. Khi nào tôi biên dịch? Làm thế nào để chương trình được thực thi (bởi vì nó sẽ là mã máy, vì vậy nó phải thực thi như một quy trình độc lập). Làm thế nào để nó giao tiếp với máy chủ web? IPC? và giao tiếp với tất cả các máy chủ (trong ví dụ MATLAB & MySQL của tôi) bằng lập trình socket? Tôi bị lạc !!
Mọi người nói rằng CGI không được dùng nữa và không được sử dụng nữa. Là vậy sao? Bản cập nhật mới nhất là gì?
Một lần, tôi gặp phải tình huống phải cấp quyền truy cập yêu cầu PUT HTTP vào máy chủ web (Apache HTTPD). Đó là một cái lưng dài. Vì vậy, theo tôi nhớ đây là những gì tôi đã làm:
Đã chỉnh sửa tệp cấu hình của Apache HTTPD để báo cho máy chủ web chuyển tất cả các yêu cầu PUT HTTP cho một số
put.php
(Tôi phải viết tập lệnh PHP này)Triển khai put.php để xử lý yêu cầu (lưu tệp vào vị trí được đề cập)
Mọi người nói rằng tôi đã viết một CGI Script. Nghiêm túc mà nói, tôi không biết họ đang nói gì.
- Tôi đã thực sự viết CGI Script?
Tôi hy vọng bạn hiểu sự nhầm lẫn của tôi là gì. (Vì bản thân tôi không biết mình đang bối rối ở đâu). Tôi yêu cầu các bạn giữ câu trả lời của bạn đơn giản nhất có thể. Tôi thực sự không thể hiểu bất kỳ thuật ngữ kỹ thuật ưa thích. Ít nhất là không trong trường hợp này.
BIÊN TẬP:
Tôi tìm thấy hướng dẫn tuyệt vời này "Lập trình CGI đơn giản!" - Hướng dẫn CGI , giải thích các khái niệm theo cách đơn giản nhất có thể. Sau khi đọc bài viết này, bạn có thể muốn đọc Bắt đầu với Lập trình CGI trong C để bổ sung hiểu biết của bạn với các mẫu mã thực tế. Tôi cũng đã thêm các liên kết này vào hướng dẫn này vào bài viết của Wikipedia: http://en.wikipedia.org/wiki/Common_Gateway_Interface