|
Lập trình web và các
khái niệm
Trong mỗi doanh nghiệp việc phát triển các ứng dụng quản lý
trên mạng càng có ý nghĩa hơn khi các mạng LAN hay WAN bùng
nổ và ngày càng phổ biến. Các ứng dụng đó đảm bảo tính
truy nhập tương tác từ nhiều phía và tài nguyên chỉ đặt
một nơi mà ta gọi là server. Như thế các mạng sẽ mang lại
cho chúng ta những lợi nhuận đáng kể. Và thực tế đã
chứng tỏ điều đó, các ứng dụng đều hướng tới mạng
và Internet, từ kinh doanh trên Internet, quảng cáo, hệ thống
thư điện tử, cũng như thương mại điện tử. Các khái
niệm đó đang gần gũi với chúng ta hơn.
Bài viết giới thiệu với các bạn một số khái niệm có liên
quan đến lập trình Web. Đó là những khái niệm thường
gặp khi làm việc với môi trường mạng và đó cũng là
những nét đặc trưng khác biệt mà các bạn ít gặp khi lập
trình trên các ứng dụng đơn lẻ.
1. URL
URL (Uniform Resource Locator) dùng để chỉ tài nguyên trên
Internet. Sức mạnh của web là khả năng tạo ra những liên
kết siêu văn bản đến các thông tin liên quan. Những thông
tin này có thì là những trang web khác, những hình ảnh, âm
thanh... Những liên kết này thường được biểu diễn bầng
những chữ màu xanh có gạch dưới được gọi là anchor.
Các URL có thể được truy xuất thông qua một trình duyệt
(Browser) như IE hay Netscape.
Ví dụ: Một URL có dạng http://www.hcmut.edu.vn/index.html
Trong đó: http: là giao thức
http://www.hcmut.edu.vn/ là địa
chỉ máy chứa tài nguyên.
index.html là tên đường dẫn trên máy chứa tài nguyên.
Nhờ địa chỉ url mà ta có thể từ bất kỳ một máy nào
trong mạng Internet truy nhập tới các trang web ở các website khác
nhau.
2.Web Server/mail Server và hoạt động của browser WWW (World
Wide Web)
Hoạt động truy xuất WWW giữa máy khách và web server theo cơ
chế sau:
Server ứng dụng cung cấp dữ liệu mà người sử dụng cần
đến hoặc trao đổi. Chỉ những người sử dụng đã đăng
ký account mới được cấp web site chứa dữ liệu riêng của
mình trên server này, mọi người sử dụng đều có thể truy
xuất các URL được phép dùng chung trong server này.
Trước tiên trình duyệt thực hiện kết nối để nhận được
program/server. Browser dùng địa chỉ miền tên như số điện
thoại hay địa chỉ để đạt tới server.
Browser tìm địa chỉ tên miền - thông tin đi ngay sau http:// như
trong http://www.hcmut.edu.vn/ ví
dụ trên, trong đó http://www.hcmut.edu.vn/
là địa chỉ miền tên (cũng là địa chỉ máy chứa tài nguyên).
Sau đó browser sẽ gửi request header sau tới miền xác định:
* Một request header xác định file hay dịch vụ đang được
request.
* Các fields request header, xác định browser.
* Thông tin đặc biệt thêm vào request.
* Bất kỳ dữ liệu nào đi cùng với request.
Tất cả những thông tin đó được gọi là request header HTTP.
Chúng xác định đối với server thông tin căn bản mà client
đang request và loại đáp ứng có thể được client chấp
nhận. Scrver cũng lấy tất cả các header do client gửi tới thông
qua biến môi trường (environments variables) để chương trình
server xử lý. Server đáp ứng với response header. Header đáp
ứng đầu tiên là dòng trạng thái cho client biết kết quả
của việc tìm kiếm request url. Nếu trạng thái là thành công
(Success) thì nội dung của request url được gửi trả lại
client/browser và hiển thị trên màn hình máy tính của client.
3. HTML và Web page
Ngôn ngữ siêu văn bản (Hyper Text Markup Language) là một ngôn
ngữ dùng để tạo trang web, chứa các trang văn bản và
những tag (thẻ) định dạng báo cho web browser biết làm thế
nào thông dịch và thể hiện trang web trên màn hình.
Web page là trang văn bản thô (text only), nhưng về mặt ngữ
nghĩa gồm 2 nội dung:
- Đoạn văn bản cụ thể.
- Các tag (trường văn bản được viết theo qui định) miêu
tả một hành vi nào đó, thường là một mối liên kết
(hyperlink) đến trang web khác.
4. E-mail
- e-mail (electronic mail - thư điện tử) là hình thức gửi thông
điệp (messages) ở dạng điện tử từ máy này sang máy khác
trong mạng.
- Format của một e-mail:
Dạng format một e-mail cơ bản gồm hai thành phần: header +
body:
+ header: chứa các hàng text kiểm soát e-mail.
+ body: nội dung cụ thể của e-mail.
Phần header gồm các nội dung cụ thể sau:
To: địa chỉ người nhận e-mail
Cc: địa chỉ người nhận cộng thêm
Bcc: địa chỉ những người nhận cộng thêm
From: thông tin về người gửi e-mail (địa chỉ)
Sender: địa chỉ người trực tiếp gửi e-mail
Rcceived: danh sách các Mail- Server trung chuyển
Return path: đường dẫn ngược trở lại Received
Date: ngày giờ gửi nhận e-mail
Reply to: địa chỉ hồi âm
Message: chỉ số nhận dạng e- mail
In Reply to: chỉ số nhận dạng e-mail này quay trở lại
Referece: những chỉ số e-mail tham khảo khác
Keywords: các keywords chính về nội dung
Subject: chủ đề chính của e-mail.
- Để nới rộng thêm ra ngoài văn bản thô người ta thêm vào
các field kiểm soát gọi là MIME nới rộng sau:
Mime-Version: chỉ số version của MIME
Content-Description: chú thích về nội dung e-mail
Content-Id: chỉ số duy nhất
Content-Transfer-Encoding: cách thức mã hóa nội dung e-mail
Text: Text Only
Image : ảnh dạng .GIF, .JPEG
Audio: âm thanh WAVE
Video: Film Mfeg/chương trình bất kỳ (Octet-stream)
Application: Post Scripts chương trình dàn trang.
Chú ý: Các thông tin về phần header của e-mail trình bày ở
đây rất cần để xử lý mail.
5. Lập trình CGI
- CGI (viết tắt của Common Gateway Interface) là một phương pháp
cho phép giao tiếp giữa server và chương trình nhờ các định
dạng đặc tả thông tin.
- Lập trình CGI cho phép viết chương trình nhận lệnh khởi
đầu từ trang web, trang web dùng định dạng HTML để khởi
tạo chương trình. Định dạng HTML trở thành phương pháp
được chọn để gửi dữ liệu qua mạng vì dễ thiết lập
một giao diện người sử dụng HTML định dạng và thẻ
Input.
- Chương trình CGI chạy dưới biến môi trường duy nhất. Khi
WWW khởi tạo chương trình CGI nó tạo ra một số thông tin đặc
biệt cho chương trình và đáp ứng trở lại từ chương trình
CGI. Trước khi chương trình CGI được khởi tạo, server WWW đã
tạo ra một môi trường xử lý đặc biệt, môi trường này
chứa các dữ liệu từ HTTP request header truyền đến. Sau đó
server xác định loại file chương trình cần thực thi.
- Nói tóm lại lập trình CGI là viết chương trình nhận và
truyền dữ liệu qua Internet tới WWW server. Chương trình CGI
sử dụng dữ liệu đó và gửi đáp ứng HTML trở lại máy
khách.
- Vai trò của HTML rất quan trọng trong lập trình CGI. Chương
trình CGI được gọi qua một tag định dạng HTML chẳng hạn:
<a href=''index.cgi''Mục lục</a>
trong thông qua tag <a> ..</a> chương trình index.cgi sẽ
được thực hiện.
- Dùng thuộc tính HTML định dạng method:
Form tag bắt đầu với một thuộc tính Method để báo cho
browser biết cách thức mã hoá dữ liệu và nơi đặt dữ
liệu chuyển tới server, nó được dùng để định nghĩa
phần gì của file HTML được sử dụng cho người sử dụng
input.
Cú pháp: <form method=[post/get] action=''URL'' enctype=..>
Thêm vào input tag cho định dạng HTML này ta được một active
form:
<input type=''Submit''>
- Input tag:
Có thể tạo input text, radio buttons, check boxes và một số
loại khác.
Cú pháp: <Input type=[text/radio...] value=''...'' size=''...''
maxlength=...>
- Submit button:
Với tag _<input type=''submit''...> dùng để kích khởi gửi
dữ liệu.
CGI và tag FORM trong HTML phối hợp với nhau tạo ra submit button
dùng để kích hoạt chương trình CGI trên server cùng với các
phương pháp.
- Method GET và POST:
Có 2 cách thức cho phép dữ liệu được chuyển tới chương
trình CGI trên server.
GET gửi dữ liệu với mã URI header (Uniform Resource Identifier),
dùng với HTML định dạng tag ở dạng sau:
<Form method=''get'' action=''A CGI program''
Mã hoá URI dữ liệu và bất kỳ thông tin đường dẫn nào đều
được đặt vào biến môi trường Querystring và path-info.
POST cũng mã hoá dữ liệu URI, tuy nhiên nó gửi dữ liệu sau
khi tất cả các request header đã được gửi tới server. Phương
án GET chuyển chuỗi mã hoá URI qua biến môi trường
Querystring, còn method Post chuyển dữ liệu này qua STDIN.
Kích thước dữ liệu theo phương án GET bị hạn chế bởi không
gian biến môi trường được sử dụng trong khi đó POST không
bị giới hạn về kích thước lượng thông tin gửi đi.
Để xác định phương pháp nào được sử dụng, chương trình
CGI kiểm tra biến Requestmethod, nếu là POST thì dữ liệu mã
hoá sẽ được lưu vào biến Content-length.
Hàm ReadParse sau sẽ giải quyết vấn đề decoding dữ liệu (hàm
này nằm trong hàm thư viện mở cgi-lib.pl).
- ứng dụng của lập trình CGI:
Chương trình CGI có thể hiện thực trên nhiều platform cho
nhiều ứng dụng khác nhau như:
+ Tạo form, xử lý định dạng.
+ Tạo các đối tượng động trên một trang web.
+ Xử lý imagemaps.
+ Tìm kiếm trên web.
+ Tạo các tài liệu độc lập với platform.
+ Tạo các ứng dụng như: chat rooms, voting booths hay bất cứ
kiểu giao tiếp nào (Interactive).
+ Phát sinh động và update các trang web đó.
- Tạo tài liệu theo đặc tả cho mỗi người sử dụng.
- Hạn chế của lập trình CGI:
Thường không dùng CGI cho các vấn đề:
+ Tạo các multi-player games.
+ Tạo stock ticket được update qua trang web.
+ Tạo stock ticket được update qua trang web.
+ Tạo các ứng dụng thời gian thực nhúng trong trang web.
Nói chung, nếu các tài liệu không thay đổi sau khi nó được
phát sinh thì thay cho dùng CGI, ta cần dùng ActiveScripts Và Java.
- Cơ chế hoạt động của CGI:
+ Browser của máy khách chuyển encode dữ liệu input đối với
web server.
+ Server chuyển input tới chương trình CGI trên server.
+ CGI xử lý input, chuyển nó tới ứng dụng khác (nếu cần)
rồi gửi output cho web server.
+ Webserver gửi output do CGI đã xử lý cho browser của máy khách
và thể hiện kết quả trên trang web.
6. PERL - ngôn ngữ lập trình cho CGI
- Có thể dùng nhiều ngôn ngữ lập trình khác nhau trên CGI:
Bourne shell; C shell; C/C++; Perl; Python; Visual basic; JavaScripts.
- Ngôn ngữ lập trình PERL (viết tắt của Practical Extraction
and Report Languages) do Larry Wall xây dựng được dùng là một công
cụ lập trình trên web vì Perl có nhiều ưu điểm:
+ Perl có sức mạnh và sự linh hoạt của ngôn ngữ lập trình
cấp cao C.
+ Giống như các ngôn ngữ shell scripts, Perl không đòi hỏi biên
dịch và link mã nguồn, thay vào đó chỉ cần gọi Perl thực
thi chương trình đó.
+ Chạy được trên nhiều platfrom: UNIX, DOS, WINDOWS.
+ Perl chuyên về xử lý text, có nhiều hàm build-in, thích hợp
với xử lý trang web trong thế giới WWW.
Ngoài ra Perl còn rất nhiều điểm mạnh như của các ngôn
ngữ lập trình khác.
7. SQUID và WEBMIN
SQUID:
Squid là một proxy caching server cao cấp cho web máy khách, trợ
giúp FTP, gopher, HTTP dữ liệu objects. Không giống như các
caching software khác, Squid xử lý mọi request bằng quá trình
đơn, non-blocking.
Squit chứa chương trình server chính là squid, một chương trình
tìm kiếm hệ thống tên miền dnsserver (DNS - Domain Name System),
một số chương trình và công cụ quản lý máy khách khác.
WEBMIN:
Webmin là một phần mềm quản trị trên UNIX thông qua web.
Webmin có cấu trúc module mở và được cài đặt trên máy có
cấu hình thấp, biến nó thành miniserver rất hữu dụng.
Webmin phát hành phiên bản đầu tiên (ver 0.1) ngày 05/10/1997 và
phiên bản được sử dụng ở đây là ver 0.72.
Webmin được thiết kế cho phép dễ dàng thêm vào các module
mới mà không làm thay đổi bất kỳ mã nguồn nào đã có.
8. Web Server Log Files và thông tin về người sử dụng dịch
vụ web
Để quản lý các khách hàng trong dịch vụ của mình, người
quản trị cần biết các thông tin về người sử dụng đã
sử dụng các dịch vụ Internet thế nào: Số lần request,
khối lượng, loại dịch vụ (HTTP, Email), thời gian sử dụng
bao lâu và nhiều thông tin liên quan khác. Lấy các thông tin này
từ đâu và xử lý nó thế nào? WWW server sẽ ghi lại thông
tin về request của người sử dụng đó vào một file gọi là
log file. Chẳng hạn như ta muốn tìm các thông tin về những
người tới site của mình, dịch vụ HTTP (Hyper Text Transfer
Protocol) cho phép giao tiếp giữa browser và web server qua một
loạt các kết nối rời rạc để lấy text trên web page và
thể hiện chúng, mỗi một lần request được thực hiện thì
một bản ghi cho lần request đó được ghi vào một file log. Các
request về web được http ghi vào file access_log còn e-mail được
ghi vào file syslog trên UNIX.
Tuỳ thuộc vào từng loại mạng và server mà cấu trúc file
log có thể khác nhau ở một vài điểm nhưng nhìn chung thông
tin ghi lại đều phản ánh tên người sử dụng, ngày giờ
sử dụng dịch vụ, khối lượng request và nhiều thông tin khác.
Dựa vào các fields của file log này người quản trị có thể
thực hiện các thao tác monitor để quản lý khách hàng của mình.
Chúc vui!
|
|