Cgi web là gì
Python - CGI Programming
Bài đăng này đã không được cập nhật trong 3 năm Show Trở lại với seri về Python. Bài viết này sẽ giới thiệu về một điều rất thú vị, đó là CGI - Commond Gateway Interface Common Gateway Interface hay CGI là một chuẩn xác định cách thức trao đổi thông tin giữa web server và một custom script. Hiện nó được maintain bởi NCSA CGI là gì ?
Web browsingĐể hiểu hơn về khái niệm của CGI, ta hãy xem chuyện gì xảy ra khi click vào một hyper link trong trình duyệt ở một trang web hoặc một URL. Tuy nhiên, có thể cài đặt máy chủ HTTP để bất cứ khi nào một tệp trong thư mục chỉ định được request không được gửi trở lại, thay vào đó nó được thực hiện như một chương trình và bất kì output nào của chương trình đó được gửi lại để trình duyệt hiển thị. Chức năng này được gọi là Common Gateway Interface hay CGI và chương trình đó được gọi là CGI scripts. Các chương trình này có thể là Python Script, Perl script, C or C++. Sơ đồ kiến trúc CGICấu hình Web serverTrước khi tiến hành với lập trình CGI, điều kiện tiên quyết là Server Web Server hỗ trợ CGI và nó được cài đặt để xử lý chương trình CGI. Tất cả chương trình CGI được thực thi bởi HTTP server và được lưu trong 1 thư mục được cấu hình sẵn. Thư mục này được gọi là CGI Directory và theo quy ước nó được đặt tên là
Sau khi chạy thành công Web server, ta có thể chạy bất kỳ chương trình CGI nào khác như Perl, Shell, C hoặc C++ First CGI ProgramDưới đây là một liên kết đơn giản, chúng được link tới một CGI script là
Nếu click Đoạn mã trong file hello.py là đoạn code đơn giản của Python, đầu ra viết trên file STDOUT file. Có một tính năng quan trọng và là tính năng có sẵn ở đây là dòng đầu tiên được in ra là Content-type:text/html\r\n\r\n. Dòng này được gửi ngược lại cho trình duyệt để hiển thị trên màn hình trình duyệt. Đến thời điểm hiện tại phải hiểu được cơ bản về khái niệm của CGI và có thể viết nhiều chương trình CGI phức tạp sử dụng Python. Đoạn script có thể tương thích với bất kỳ hệ thống bên ngoài nào khác cũng như trao đổi thông tin như là RDBMS HTTP HeaderDòng Content-type:text/html\r\n\r\n là một phần của HTTP header được gửi tới trình duyệt để hiểu nội dung. Tất cả các HTTP Header đều có chung 1 form
Có một số HTTP Header khác mà sẽ sử dụng thường xuyên trong lập trình CGI như dưới đây
Các biến môi trường của CGITất cả các chương tình CGI có thể truy cập vào các biến môi trường dưới đây. Các biến môi trường này đóng vai trò quan trọng trong khi viết nhiều chương trình CGI
Dưới đây là chương trình CGI nhỏ để liệt kê ra tất cả các biến CGI.
GET và POSTPhải trải qua nhiều tình huống khi truyền một số thông tin tới máy chủ web và đặc biệt là CGI Program. Phương thức hay sử dụng nhất trong các tình huống là GET và POST method GETGET gửi thông tin user mã hoá được thêm vào page request. Page và thông tin mã hoá sẽ được phân cách bởi ký tự
GET method là phương thức mặc định để truyền thông tin từ browser tới web server và nó cung cấp string dài xuất hiện trên Localtion box của trình duyệt. Không bao giờ sử dụng GET nếu bạn có password hoặc các thông tin bí mật mà bạn muốn gửi lên server. GET có độ dài giới hạn, chỉ 1024 ký tự có thể được gửi trong 1 chuỗi request. GET truyền thông tin sử dụng |