Lậptrìnhwebvàcáckháiniệm Cùng với sự phát triển của CNTT cũng như Internet, việc phát triển các ứng dụng trên một máy đơn cũng đã mang lại nhiều lợi ích và được áp dụng trong nhiều lĩnh vực của đời sống. Tuy nhiên, với sự gia tăng phát triển của ngành công nghiệp máy tính, xu hướng toàn cầu hoá nhất hiện nay, tin học phải mở rộng hơn để có thể khai thác nguồn tài nguyên Internet 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áckháiniệ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áiniệm có liên quan đến lậptrình Web. Đó là những kháiniệ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ậptrì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ậptrì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ìnhvà đá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ậptrì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ậptrì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ệuvà 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ệuvà 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ậptrì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áctàiliệ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àiliệu theo đặc tả cho mỗi người sử dụng. - Hạn chế của lậptrì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áctàiliệ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ậptrình khác nhau trên CGI: Bourne shell; C shell; C/C++; Perl; Python; Visual basic; JavaScripts. - Ngôn ngữ lậptrì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ậptrì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ậptrì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ậptrì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ìnhvà 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. . 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. Lập trình web và các khái niệm Cùng với sự phát triển của CNTT cũng như Internet, việc phát triển các ứng dụng trên một máy đơn