Chương này tiếp cận Web từ một hướng khác so với chương 19 (CGI programing): thay vì trả lời một yêu cầu từ trình duyệt, ở đây chúng ta giả làm một trình duyệt, phát sinh yêu cầu và xử lý kết quả trả về. Vì các giao thức mạng và các định dạng tài liệu rất phức tạp, chúng ta sẽ tận dụng các module sẵn có để đơn giản hoá quá trình này và có thể tập trung vào chương trình của mình.
Những module thích hợp có thể tìm thấy tại http://www.perl.com/CPAN/modules/by-category/15_World_Wide_Web_HTML_HTTP_CGI/
Có những module dùng để kết toán thẻ tín dụng, tương tác với Netscape hay API của server Apache, xử lý bản đồ hình ảnh, kiểm tra tính hợp lệ của HTML, thao tác MIME. Những module lớn nhất và quan trọng nhất đối với chương này được tìm thấy trong bộ module libwww-perl, gọi tắt là LWP. Sau đây là một số module được tích hợp trong LWP:
Các module HTTP và LWP cho phép thực hiện một yêu cầu tài liệu từ một server. Cụ thể, module LWP::Simple cung cấp một cách thức dơn giản đế lấy về một tài liệu. Tuy nhiên , module này không có khả năng truy xuất đến từng thành phần riêng biệt của một trả lời http. Để có thể truy xuất các thành phần này, cần dùng đến TTP::Request, HTTP::Response và LWP::UserAgent.
| Module | Mục đích |
| LWP::UserAgent | www user agent class |
| LWP::RobotUA | Phát triển các ứng dụng robot |
| LWP::Protocol | giao tiếp với các kiểu giao thức khác nhau |
| LWP::Authen::Basic | Xử lý các trả lời 401 và 407 |
| LWP::MEdiaTypes | cấu hình các kiểu MIME (text/html, ...) |
| LWP::Debug | debug logging module |
| LWP::Simple | giao tiếp với các giao thức đơn giản cho các hàm chung |
| HTTP::Headers | các dạng header MIME/RFC822 |
| HTTP::Message | message dạng HTTP |
| HTTP::Request | HTTP request |
| HTTP::Response | HTTP response |
| HTTP::Deamon | 1 lớp HTTP server |
| HTTP::Status | mã status HTTP |
| HTTP::Date | lấy ngày từ định dạng ngày http |
| HTTP::Negotiate | HTTP content negotiation calculation |
| HTTP::RobotRules | đọc các file robot.txt |
| File::Listing | đọc danh sách liệt kê thư mục |
Liên hệ chặt chẽ với LWP nhưng không được phát hành chung với LWP là các module HTML. Các module này cho phép diễn dịch tài liệu HTML. Chúng cung cấp nền tảng cho các recipe được giới thiệu trong phần 20.5, 20.4, 20.3 và 20.7
Recipe 20.12 đưa ra một rehular expression để giải mã các trường trong file log của web server và trình bày cách diễn dịch các trường này. Regular expression này được sử dụng cùng với module Logfile::Apache trong recipe 20.13 để trình bày hai cách tóm lược dữ liệu trong log file của web server.
No comments:
Post a Comment