Luận văn Truy cập Cơ sở dữ liệu bằng web

pdf 99 trang phuongnguyen 2431
Bạn đang xem 20 trang mẫu của tài liệu "Luận văn Truy cập Cơ sở dữ liệu bằng web", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfluan_van_truy_cap_co_so_du_lieu_bang_web.pdf

Nội dung text: Luận văn Truy cập Cơ sở dữ liệu bằng web

  1. www.updatesofts.com MụCLụC PhầnITổngquanvềhệthốngWeb Ch−ơngiHệthốngWeb INhữngkháiniệmcơbảnvềhệthốngWeb 1 I.1NguồngốccủaWorldWideWeb 1 I.2KháiniệmvềWeb 1 I.3Siêuliênkết 2 I.4ĐịachỉcủaWeb 2 I.5MôhìnhWebClient_Server 2 I.5.1WebBrowser 2 I.5.2WebServer 3 I.5.3WebClientServer 4 I.6GiaothứcHTTP(HypertextTransferProtocol) 5 I.7PhânloạiWeb 6 I.7.1TrangWebtĩnh(StaticWebPages): 6 I.7.2FormPages 6 I.7.3Webđộng: 8 Ch−ơngIINgônngữsiêuvănbản(HTML) IKháiniệmchung 11 IIĐặctảvềHTML 11 II.1Cáctừkhoáđịnhdạngcấutrúctiliệu 12 II.2Điểmmócnối 13 II.3Cáctừkhoáđịnhdạngkhối 14 II.4Cáctừkhoákhaibáodanhsách 16 II.5Cáctừkhoákhaibáoloạithôngtinvđịnhdạngmẫuchữ 17 II.5.1Khaibáoloạithôngtin 17 Trang2 EbookTeam
  2. www.updatesofts.com II.5.2Địnhdạngmẫukýtự 18 II.6Lồnghìnhảnh 18 II.7Cáctừkhóalậpmẫubiểubảng(Forms) 19 II.8Lậpbảng 23 III.Các−unh−ợcđiểmcủaHTML 26 PhầnIITruynhậpCơSởdữliệutheogiaodiệnCGI Ch−ơngIgiớithiệuch−ơngtrìnhCGI ICáckháiniệmcơbản 27 I.1Tiliệutĩnh(StaticDoccuments) 27 I.2Tiliệuđộng(DynamicdoccumentsDoccumentonthefly) 28 I.3Mộtcáchtiếpcậntớitiliệuđộng:CôngnghệServersideinclude 28 IICGI(CommonGatewayInterface) 29 II.1CGIlgì: 29 II.2MụctiêucủaCGI(ThegoalofCGI) 30 II.3Cáchthứchoạtđộngcủamộtch−ơngtrìnhCGI 31 IIIChuẩnCGI 32 III.1Ph−ơngphápGET 32 III.2Ph−ơngphápPOST 33 III.3Sựkhácnhaugiữaph−ơngphápGET&POST 33 III.4Dòngvochuẩn(StandardInput) 33 III.5Dòngrachuẩn(CGIStandardOutput) 33 Ch−ơngIIXâydựngch−ơngtrìnhCGItrênC ITruyềnsốliệuchoCGIgateway 34 I.1Truyềnthôngtinquathamsốdònglệnh 34 I.2Truyềnthôngtinquabiếnmôitr−ờng 34 I.3Truyềnthôngtinquadòngnhậpchuẩn 36 IIXửlýcácFORM 36 Trang3 EbookTeam
  3. www.updatesofts.com II.1TruycậpdữliệutừForm 36 II.1.1Cácxâuquery 36 II.1.2Ch−ơngtrìnhxửlýForm 37 II.2Hoạtđộngcủach−ơngtrìnhCGI 38 II.2.1LấydữliệutừFormvxửlýdữliệu 38 II.2.2Đ−akếtquảđ−aratừCGIGateway 41 II.2.3Thôngtinkếtquảtừch−ơngtrìnhCGI: 41 II.2.4CácHeaderCGI 42 ch−ơngiiioracleWebServervxâydựngch−ơng trìnhCGItruynhậpCSDLoracle AORACLEWEBSERVER IKiếntrúccủaOracleWebServer 45 I.1WebListener 45 I.2WebRequestBroker: 45 I.3SercureSocketsLayer 46 I.4QuảntrịWebServer 46 I.5GiaodiệnCGI 46 I.6PL/SQLAgent 46 IINguyêntắchoạtđộngcủaOracleWebServer 47 II.1TheWebListener(OWL) 49 II.1.1AuthenticationScheme 50 II.1.2RestrictionScheme 50 II.2TheWebRequestBroker(WRB) 51 II.2.1WRBDispatcher: 52 II.2.2WRBService 52 II.2.3WRBCartridges 52 II.3SercureSocketLayer(SSL) 54 Trang4 EbookTeam
  4. www.updatesofts.com II.4QuảnlýWebServer 56 II.4.1ListenerPages 56 II.4.2WRBPages 56 II.4.3PL/SQLAgentPages 57 II.4.4Oracle7ServerManager 57 II.5GiaodiệnCGI 57 II.6PL/SQLAgent 58 II.7XácđịnhvSửdụngPL/SQL 58 B.Xâydựngch−ơngtrìnhtruynhậpcơsởdữliệu theogiaodiệnCGI IOWAORACLEWEBAGENT 59 I.1OracleWebAgentlgì 59 I.2HypertextProcedure(HTP) 59 I.3HypertextFunction 59 I.4CácOWAcơbản 60 I.4.1OWA_UTIL(owa_utilities) 60 I.4.2OWA_PATTERN(PatternMatchingUtilities) 60 I.4.3OWA_COOKIE(CookieUtilities) 61 I.4.4OWA_INIT 61 I.5Xâydựngch−ơngtrình 62 KếtLuận 68 PhụLục 69 Trang5 EbookTeam
  5. www.updatesofts.com LờiGiớithiệu Trongthờikỳcủakỷnguyênthôngtinhiệnnay,vấnđềtraođổithông tinlvôcùngquantrọng.Nhucầutraođổithôngtingiatăngkhinềnkinhtế ngycngpháttriển. Dosựbùngnổvềthôngtinnh−vậyng−ờitađvđangrấtquantâm sửdụngcôngnghệtinhọcđặcbiệtlcôngnghệInternet,Intranet.Cáccông nghệnytạođiềukiệnchoviệctraođổivphổbiếnthôngtindễdngkhông phụthuộcvovịtríđịalí.CôngnghệInternet,Intranetbanđầuchủyếuphục vụchogiáodục,vnghiêncứu,nayđmởrộngracáclĩnhvựckhác(th−ơng mại,giảitrí, ). Córấtnhiềuph−ơngpháptraođổithôngtin(WWW,FTPtruyềnfile, EMAIL th− điện tử, TELNET, RLOGIN lm việc với máy tính từ xa, NEWthảo luận, GOPHER tìm kiếm file, ), trong đó dịch vụ WWW (WorldWideWeb)lmộttrongnhữngdịchvụđ−ợcdùngphổbiếnnhất. LuậnvănđisâunghiêncứutìmhiểudịchvụWorldWideWebtrên mạng,vđặcbiệtltìmhiểuph−ơngphápkhaitháccơsởdữliệuthôngqua Web. Luậnvănđ−ợcchiathnh2phần: Trang6 EbookTeam
  6. www.updatesofts.com PhầnI: Vớitiêuđề TổngquanvềhệthốngWeb ,phầnnycủaluậnvăntrìnhby nhữngkháiniệmcơbảnvềWeb,WebClientServer.Trongphầnnycũng trìnhbynhữngnộidungcơbảnnhấtvềngônngữHTMLđểxâydựngtrang Web. PhầnII:Trìnhbyvềcáccáchthứctruynhậpcơsởdữliệubằngch−ơngtrình ngoi,đặcbiệtlquagiaodiệnCGI(CommonGatewayInterface),cáckhái niệmcơbảntrongCGI.Trongphầnnyluậnvănđ−arahaiph−ơngthứctruy nhậpCSDLbằngCGI: Truynhậpkhônghỗtrợcáccôngcụcủahệquảntrịcơsởdữliệu.Theo dạngny,luậnvănchútrọngvocáchthứctraođổithôngtintheodòngvo chuẩnvdòngrachuẩn,luậnvănphântíchsựhoạtđộngcủach−ơngtrình CGIđ−ợcviếttrênCđểthấyrõcáchthứctraođổiny. TruynhậpnhờcôngcụhỗtrợcủahệquảntrịCSDLmởđâylhệ quảntrịCSDLORACLE.LuậnvăntrìnhbyhoạtđộngOracleWebServer vớicácthuộctínhmởrộngsovớicácWebServerthôngth−ờng,cácmởrộng nytạođiềukiệnchong−ờipháttriểnxâydựngcácứngdụngvớigiaodiện Web.Cuốicùnglxâydựngmộtch−ơngtrìnhvídụminhhoạviệcOracle WebServerthaotácvớicơsởdữliệu. EmxinchânthnhcảmơntonthểcácthycôgiáoKhoaCNTT,đặc biệtcácthygiáotổbộmônCáchệthốngthôngtin,thyHQuangThuỵ. VcácthyTrầnXuânThuận,LêHuy(LiênHiệpKhoahọcvsảnxuấtPhần MềmCSE)vtonthểcácanhchịởCSE;nhữngng−ờiđcungcấptiliệu, chỉnhsửavđónggópnhữngýkiếnquýgiátrongquátrìnhxâydựngluận vănny. HNộingy26598 Trang7 EbookTeam
  7. www.updatesofts.com TiêuThịDự K39KTTCNTT PhầnI TổngquanvềWeb ch−ơngI HệthốngWeb I NhữngkháiniệmcơbảnvềhệthốngWeb I.1 NguồngốccủaWorldWideWeb Năm1990nhómnghiêncứudoTimBernersLeeđứngđầulmviệctại phòngthínghiệmvậtlýhạtnhânchâuÂuđđ−aramộtbộgiaothứcmới phụcvụchoviệctruyềnvnhậncáctệpsiêuvănbản(Hypertext)trênmạng Internet. Bộ giao thức ny chủ yếu dựa trên ngôn ngữ HTML (Hypertext Markup Language) để liên kết, trao đổi thông tin v gọi tắt l HTTP (HypertextTranferProtocol).Ngaysauđó,cáctổchứcvtậpđonkhácđ công nhận bộ giao thức HTTP, v thnh lập một tổ chức gọi l W3 Consortium để tiếp tục phát triển v chuẩn hoá bộ giao thức ny. W3 Consortium đ phát triển thêm các tính năng mới của HTML v các mức (Level)cũngnh−cácchuẩnđểthựchiệncácphầnmềmđikèm.Từđóthuật ngữWorlWideWebrađờivđ−ợccôngbốrộngritrênInternet. I.2 KháiniệmvềWeb WorldWideWeb(viếttắtlWWWhaycònđ−ợcgọilWeb)cócấu trúc thể hiện nh− một trang văn bản v đồ hoạ có các siêu liên kết Trang8 EbookTeam
  8. www.updatesofts.com (Hyperlinks)mtheođótacóthểlựachọn.Những siêuliênkết nysẽđ−a chúngtađếncáctinguyênkháctrênmạngvớiđầyđủtínhnăngđộcđáonh− cáchìnhảnh,đồhoạ,âmthanh...Webgiúpconng−ờithựchiệnnhữngcông việctrênmạngmộtcáchdễdng. I.3 Siêuliênkết SiêuliênkếtlmộttừhaymộtcụmtừtrêntrangWebdùngđể“chỉ” đếnmộttrangWebkhác.Khinhấnchuộtlênmộtsiêuliênkết,trìnhduyệtsẽ đ−achúngtađếnmộttrangWebkhác.Vìnhữngliênkếtsiêuvănbảnny thậtsựltínhnăngđặctr−ngcủaWorlWideWeb,nêncáctrangWebth−ờng đ−ợcbiếtđếnnh−lnhữngtiliệusiêuvănbản. I.4 ĐịachỉcủaWeb Địa chỉ của Web đ−ợc biết đến nhờ các URL (Uniform Resource LocatorBộđịnhvịtinguyênđồngnhất).NếucáctrangWebđ−ợcghilồng vosâuhếtmụcnyđếnmụckhácthìđịachỉcủaWebsẽhếtsứcdi.Nó th−ờngđ−ợccoilmộtURLkhôngbaogiờchấmdứt(liênkếtvớinhiềuliên kết).MộtURLth−ờngcócấutrúcnh−sau: Protocol://host.domain/directory/file.name +Protocol:NghithứcTCP/IPsửdụngđểtìmtinguyên(HTTPhayFTP) +Host.domain:TênmáychủnơitrangWebl−utrú +Directory:Th−mụcchủchứatiliệuđó +File.name:Tênchínhxáccủatậptiliệuđó URLđ−ợcsửdụngtấtcảcácdịchvụthôngtintrênmạng.Mỗimột trangWebcómộtURLduynhấtđểxácđịnhtrangWebđó.Quaphântích cấutrúccủamộtURL,tathấyrằngthôngquaURLcóthểtruycậpbấtcứ mộttinguyênthôngtindữliệucủabấtkỳdịchvụnocủabấtkỳmáytính notrênmạng. Trang9 EbookTeam
  9. www.updatesofts.com I.5 MôhìnhWebClientServer I.5.1 WebBrowser WebBrowserlcôngcụtruyxuấtdữliệutrênmạng,lphầnmềmgiao diệntrựctiếpvớing−ờisửdụng.NócókhảnăngyêucầuthôngtintừWeb Servervcácdịchvụkhácnhautheonhucầucủang−ờisửdụng.SauđóWeb BrowsersẽđợithôngtintừWebServerhaycácmáyphụcvụcủacácdịchvụ thôngtinkhácvhiểnthịthôngtinchong−ờisửdụng.Thôngtinhiểnthịcó thểđ−ợcl−utrữtrênnhữngtrangWebriêng,đ−ợctạoratr−ớckhicóyêucầu (đóltrangWebtĩnh)hoặcthôngtincóthểđ−ợctạoratừtrongcáccơsởdữ liệudựatrênyêucầu(đóltrangWebđộng).CónhiềuWebBrowserkhác nhaunh−: +Mosaic +NetscapeNavigator +MicrosoftInternetExplorer +LynxtrongUnix PhầnlớncácBrowserhỗtrợmộtdanhsáchcácđặctr−ngvớikhảnăng xửlýfilenh−filesHTML,FilesGIF,FilesJPEG.NhiềuBrowsermớicòncó khảnănghỗtrợmộtdanhsáchcácđặctr−ngmởrộngcókhảnăngxửlýJava vJavaScpript.NhiềuBrowserlmviệcvớifilephụthuộcvoHeaderkiểu MIME(MultipurposeInternetMailExtentions).CácBrowsernh−thếcóthể tựxửlýfiles,vyêucầusựgiúpđỡcủanhữngứngdụng,hayđơngiảnl Savefilevođĩa. I.5.2 WebServer WebServerlmộtphầnmềmđóngvaitròphụcvụ.Khi đ−ợc khởi động,nóđ−ợcnạpvobộnhớvđợicácyêucầutừnơikhácđến.Cácyêu cầucóthểđếntừmộtng−ờisửdụngdùngphầnmềmWebBrowserhoặccũng cóthểđếntừmộtWebServerkhác.Trongcảhaitr−ờnghợptrênđốit−ợng Trang10 EbookTeam
  10. www.updatesofts.com đ−arayêucầugọilkháchhng(Client).CácyêucầuđốivớiWebServer th−ờnglđòihỏivềmộtt−liệuhaythôngtinnođó.Khinhậnđ−ợcyêucầu, nóphântíchđểxácđịnhxemt−liệu,thôngtinkháchhngmuốnlgì.Sau đónótìmlấyt−liệuvgửichokháchhng.Việcphụcvụphầnlớnnhờdịch vụHTTPtruynhậpđếntiliệuHTMLhaynhữngứngdụngcủaCGI.Cũng cóthểphụcvụthôngquacácgiaothứckhácnh−:FTP,Gopherhaydịchvụ Telnet(minhhoạhình1.1) GopherServer Gopher HTTP WebBrowser WebServer Gateway OtherServer FTP FTPServer Hình1.1TraođổithôngtinWebBrowser Server NhiệmvụchínhcủaWebServerl: +“Tiếpnhận“yêucầuđ−avotừtrênmạng +CungcấpnhữngtrangHTML +CungcấpvpháttriểnứngdụngtrênWeb +Tìmkiếmfiletừmột“Vitualroot” +PhụcvụyêucầufiletớiClient I.5.3 WebClientServer World Wide Web đ−ợc xây dựng v hoạt động theo mô hình Client/Server. Các Client dùng một phần mềm gọi l Web Browser. Web Browsertiếpnhậnthôngtinyêucầutừng−ờidùngsauđógửicácyêucầutới máyServerxửlý. Trang11 EbookTeam
  11. www.updatesofts.com WebServercũnglmộtphầnmềmchạytrêncácmáyphụcvụ,nhận Requestthựchiệntheoyêucầurồitrảthôngtin(Response) cho ng−ời sử dụng. WebClient WebServer HTTP Network Hình1.1WebClientServerParadigm I.6 GiaothứcHTTP(HypertextTransferProtocol) HTTP l giao thức truyền thông m Client sử dụng để liên lạc với Server.Mọigiaothứctruyềnthôngđềuđòihỏimộtch−ơngtrìnht−ơngứng trênServerđể“nghe”yêucầuđ−avotừtrênmạng.VídụFPTcómộtFPT daemon,TelnetcómộtTelnetdaemongiốngnh−HTTPcũngcómộtHTTP daemon.BởivậykhimáyServerhoạtđộngđcónhữngdaemonchạytrên Server,vídụnh−WebListenertrênOracleWebServercũnglmộtServer daemont−ơngứng. HTTPcũngt−ơngtựnh−Telnet.Tuynhiêncómộtsựkhácbiệtquan trọnggiữaHTTPvTelnetđólHTTPkhôngduytrìkếtnốivớiServer.Sau khiServerphụcvụmộtfiletớiClient,nóchấmdứtsựkếtnốivớitrạmcuối. TrongthờigiansauđónếuClientyêucầumộtfiletừServer,thìkhimộttrang thôngtinmớiđ−ợctảixuốngthìmộtkếtnốimớimớiđ−ợcxâydựngvới Server. Trang12 EbookTeam
  12. www.updatesofts.com KhôngcómộttrạngtháithôngtinnocóthểduytrìlâudigiữaClient vServervyêucầukếtnối.NếuthôngtinđyêucầumClientphảibảovệ nóhaynắmgiữnó,thôngtinyêucầuđótrìnhdiệnlạivớikếtnốisau. I.7 PhânloạiWeb TheoquanđiểmcủaMartinRennhackkawp(TạpchíDBMS5/97)cho rằngcóhểphânloạiWebthnh3loạil:TrangWebtĩnh,Formpagev trangWebđộng. I.7.1 TrangWebtĩnh(StaticWebPages): TrangWebtĩnhltiliệuđ−ợcphânphátrấtđơngiảntừhệthốngfile củaServer.PhầnmềmWebServersẽtiếnhnhtìmkiếmvxácđịnhđúngvị trífileđóvgửitrảkếtquảchoClient(Browser).ViệcsửdụngtrangWeb tĩnhcónhững−u,nh−ợcđiểmrõrng. +Ưuđiểm:Khicơsởdữliệulnhỏthìviệcphânphátdữliệucóhiệuquả, ServercóthểđápứngnhucầucủaClientmộtcáchnhanhchóng.KiểuWeb tĩnhsẽltốtnhấtđểsửdụngkhithôngtincósẵntrênổđĩacứng,vkhông thayđổi. +Nh−ợcđiểm:Khôngnăngđộng,khôngđápứngnhucầuthôngtinvìvậy khôngđápứngđ−ợcnhữngyêucầuphứctạpcủang−ờisửdụng. Quátrìnhphânpháttiliệutĩnhđ−ợcthểhiệnnh−sau: Trang13 EbookTeam
  13. www.updatesofts.com Browserpháttínhiệuyêucầu Browser Server Servergửitrảtiliệu HìnhI.2PhânPhátti liệu I.7.2 FormPages VềmặtbảnchấtFormPagesltr−ờnghợpđặcbiệtcủatrangWebtĩnh. Nóchophépnhậnđ−ợcphảnhồitừphíang−ờisửdụngthôngquaform.Form pagesđ−ợcxâydựngdựatrênngônngữHTML. Vídụ Vídụvềformpages Phiếuđiềutra Xinmờingitrảlờivicâuhỏisau Têncủabạn: Nam Nữ Giađình: ThnhPhố: Trang14 EbookTeam
  14. www.updatesofts.com Hnội Hải Phòng Hồ Chí Minh Other CámƠnBạnđtrảlờicâuhỏi SaukhitrìnhduyệtWebthựchiện,nhậnđ−ợckếtquảnh−sau: Trang15 EbookTeam
  15. www.updatesofts.com Trongvídụtrên,cácthnhphần v đ−ợcdùngđểbốtrícác tr−ờngkýtựvnhậnsốliệu.Nhiềubộduyệtquy−ớcdùngcácphímTabv Shiftđểchuyểndịchgiữacáctr−ờngvENTERđểSUBMIT,nghĩalkết thúcquátrìnhvosốliệuvgửiđi.NútSUBMITdùngđểE_Mailhaygửi thẳngnộidungcủabảngđếnServer,tuỳthuộcvothuộctínhACTION.Nút RESETtrảcáctr−ờngnhậnvềgiátrịbanđầu. I.7.3 Webđộng: TrangWebloạinycóthểthaotácvớicơsởdữliệuđểđápứngnhu cầuphứctạpcủang−ờisửdụng.Chẳnghạnnh−khing−ờisửdụngcầncó nhữngthôngtinthayđổihngngythìviệcphảithaotácvớicơsởdữliệu bênngoilcầnthiết.Cónhiềucáchthứccóthểtruynhậpđếncơsởdữliệu bênngoivính−ISAPI(InternetServerApplicationProgrammingInterface), ASP(ActiveServerPages)hayJAVAvđiểnhìnhldùngch−ơngtrìnhchạy ngoiCGI(CommonGateWayInterfaceSẽđ−ợctrìnhbykỹphầnsau).Cơ chếhoạtđộngđ−ợcthểhiệnnh−hìnhvẽ1.3: Yêucầu URL WebServer CGI Forms HTML WebBrowser Connect ReturnData DBMS HìnhI.3CơchếhoạtđộngcủaWebServer KhiClientgửiyêucầutớiServerthôngquaCGI,ch−ơngtrìnhCGIsẽ Trang16 EbookTeam
  16. www.updatesofts.com mócnốivớiCơsởdữliệubênngoi,thựchiệnch−ơngtrìnhsauđógửitrảkết quảd−ớidạngHTMLvhiểnthịtrêntrangWeb. Nh−ngviệcthựchiệnch−ơngtrìnhCGIcóvấnđềvềthờigiantứcl việctảifilessẽdiễnrachậmbởivậyng−ờitađ−aragiảiphápkhắcphụcl dùng phần mềm trung gian (MiddleWare) ODBC ( Open Database Connectivity). ODBC lmộtch−ơngtrìnhứngdụngchuẩnđểtruynhậpdữliệu.Phần mềmODBCcóchứcnăng kếtnối vớicơsởdữliệu(ConnectionManagenal), vdochỉhiểuđ−ợccâulệnhSQLnênnócòngiữvaitrò thôngdịch. Việc dùngODBCcũngcónhững−unh−ợcđiểmnh−sau: +Ưuđiểm:khắcphụcđ−ợctìnhtrạngquátảitrênWebServervcóthểlm việcđ−ợcvớinhiềucơsởdữliệucùngmộtthờiđiểm,tốtđốivớimạngLAN. Vdođ−ợcrađờikhásớmvquenthuộcnêncáccôngtysảnxuấtmáytĩnh cũngchúýhỗtrợODBC. + Nh−ợc điểm: Phải ci đặt từng ODBC Driver t−ơng ứng với phần mềm CSDLtrênClientsnếumuốnchạyCSDLđó.MặtkhácODBClạikhôngphù hợpđốivớimạngdiệnrộng. HìnhI.4thểhiệncáchthứcODBCtrongđó: +Odbc Manager:Gửiđicáccuộcgọitừnhữngứngdụngkhácđếnnhững thiếtbịchuẩn. +Driver:XửlýcácchứcnăngODBC,trìnhdiệncâulệnhSQLtớiBDMSxác định,vtrảlạikếtquả. +DBMSs:XửlýyêucầutừODBCDrivervtrảlạikếtquả. Trang17 EbookTeam
  17. www.updatesofts.com ODBCDriverManager OracleODBC MSSQLODBC DB2ODBC Driver Driver Driver SQLNet NetLibrery NetLibrary Microsoft ORACL SQLServer IBM E for DB2 for Windows UNIX NT HìnhI.4CáchthứcODBC Ch−ơngII ngônngữsiêu vănbản(HTML) I Kháiniệmchung Ngôn ngữ siêu văn bản HTML (Hypertext Markup Langure) l một cáchđ−avovănbảnnhiềuthuộctínhcầnthiếtđểcóthểtruyềnthôngquảng Trang18 EbookTeam
  18. www.updatesofts.com bátrênmạngtoncầuWWW(WorldWideWeb).HTMLchophépđ−ahình ảnhđồhoạvovănbản,vtạonhữngtiliệusiêuvănbảncókhảnăngđối thoạit−ơngtácvớing−ờidùng. HTMLchủyếuxoayquanhkháiniệm“tiêuthức”(tag)lmnềntảng. Đểtạomộtsiêuvănbản,tacóthểdùngbấtcứmộtch−ơngtrìnhsoạnthảo novídụnh−NC,EDITcủaDOS,NotePadhayWritecủaWindows3.x, WordPadcủaWin95...VchỉcầnnắmvữngcáctiêuthứccủaHTML,v chúýkhicấtlênđĩathìcầnl−ud−ớidạngTXT.Songcómộthạnchếldạng vănbảnkhisoạnvớikhixemsaunytrênWWWlkhônggiốngnhau. Ngynaydosựpháttriểncủamạngtoncầu,HTMLcũngngycng trởnênphứctạpvhonthiệnhơnđểđápứngđ−ợcnhữngyêucầumớinảy sinhtrongquátrìnhpháttriểnđó(nh−âmthanh,hìnhảnhđộng,hayđiều khiểntừxa,hiệnthựcảo...).Ng−ờitagọiđólnhữngphiênbảncủaHTML vđánhsốđểbiểuthị. MộttrongnhữngđiểmmạnhcủaHTMLlmộtvănbảnbất kỳ nếu tuânthủtiêuchuẩnHTMLđềucóthểhiệnđ−ợclênmnhìnhhayinra,tóm lạilhiểuđ−ợc,bởibấtkỳloạiphầnmềmhaymáytínhnomng−ờidùng có,khôngphânbiệtNetscapetrênWindows,hayLynxtrênUnix,thậmchí chong−ờikhiếmthịbằngphầnmềmđặcbiệt. II ĐặctảvềHTML TonbộcácthẻcủaHTMLđ−ợcchiarathnh7nhómthnhphầnnh− sauvđ−ợcgọiltừkhoá: • Từkhoáxáclậpcấutrúctiliệu • Từkhoátạođiểmmócnối • Từkhoáđịnhdạngkhối Trang19 EbookTeam
  19. www.updatesofts.com • Từkhoákhaibáodanhsách • Từkhoákhaibáoloạithôngtinvđịnhdạngmẫuchữ • Từkhoáđ−ahìnhảnhvotiliệu • Từkhoálậpmẫubiểubảng II.1 Cáctừkhoáđịnhdạngcấutrúctiliệu Cácthnhphầnxácđịnhcấutrúctiliệulbắtbuộcphảicótrongti liệuHTML.Ngoiphầnmởđầuxácđịnhtênvmộtsốthuộctínhđểphân biệtgiữacáctiliệu,chỉcónhữngthnhphầnsaulbắtbuộcphảicótrong mộttiliệuHTMLđểphùhợpvớichuẩn.Sauđâylcấutrúccơsởcủatrang Webđ−ợcxâydựngbằngHTMLNhữngtừkhoáthiếtyếuđóvtrìnhtựxuất hiệncủachúngđ−ợcsơbộliệtkênh−sau: ... ........ • ... Cặptừkhoánygiúpnhậndạngtiliệucóchứacácthnhphầntuânthủtheo chuẩnvềngônngữHTML • ... ThnhphầnmởđầucủamộttiliệuHTMLchứacácthôngtinvềtiliệuđó. Trongđócặptừkhoáđặttiêuđềcũnglbắtbuộc: Trang20 EbookTeam
  20. www.updatesofts.com GiớithiệuchungvềtrangWeb Cặptừkhoá v khôngtrựctiếpảnhh−ởngđếncáchthể hiệntiliệukhitaxembộduyệt. Cácthnhphầnsauđâyliênquantớithnhphầnmởđầutiliệutuy khôngtrựctiếp“tạodáng“nh−ngnếusửdụnglạicungcấpnhữngthôngtin quantrọngđốivớibộduyệt: Chophépkhaibáođịachỉcơsởcủatiliệu Chophéptìmkiếmtrongtiliệutheotừkhoá Chỉramốiquanhệgiữacáctiliệu Tạotêngọiđồngnhấthoátiliệu CungcấpthôngtinhữuíchchochếđộServer/Client • Thẻ ... : PhầnthâncủatrangWebchứatấtcảcácthnhphầnkháccũngnh−nội dungtừlờivănđếnhìnhảnhcấuthnhmộttiliệu,songkhôngdínhdánggì đếnsựbitrícủatiliệuđó. II.2 Điểmmócnối Đánhdấucụmtừchỉđếnmộtkếtnốisiêuvănbản(Hypertextlink)m khitrỏtớinó,bộduyệtsẽdẫndắtđếnmộttiliệuhoặcmộtđoạnvănkhác. Cónhiềuthuộctínhnh−nghoặcNAMEhoặcHREFlthuộctínhbắtbuộc. • HREF NếucóthuộctínhHREF,cụmtừđứnggiữasẽtrởthnhsiêuvănbản, nghĩalnótrỏđếnmộtvănbảnkhácchứkhôngchỉmangnộidungthuần tuý.Khichọnvocụmtừđó,mộttiliệukháchoặcmộtđoạntiliệukhác Trang21 EbookTeam
  21. www.updatesofts.com trongcùngtiliệuđangxemmđịachỉđ−ợcchỉrabởithuộctínhHREFsẽ đ−ợchiệnlên. • NAME Dùngđểđặttênchođiểmmócnốivvìvậyphảilduynhấttrongnội bộtiliệuhiệnthờimặcdùtêncóthểđặtmộtcáchtuỳý Vídụ: Cphê lmộtvídụvềloạicây Từtiliệukháccóthểthamchiếutớibằngcáchđặttêngọivosauđịachỉ, ngăncáchbằngmộtdấu#. • TITLE Thuộctínhnychỉcóýnghĩathôngbáovđ−ợcdùngđểđặtđầuđề chotiliệumđịachỉđódoHREFchỉra.Đầuđềcầnphảilduynhấtđối vớitiliệuđích. Bộduyệtcóthểhiệnđầuđềcủatiliệutr−ớckhilấyvề,chẳnghạnnh− mộtghichúnhỏbênlềhaytrongmộtkhungnhỏkhicontrỏchuộtdiqua điểmmócnối(cóthểlmộtcụmtừhaymộthìnhảnh),haykhiđangtảiti liệura(nhấtlkhiquađ−ờngtruyềncótốcđộkhôngcaolắm). Cónhữngtiliệukhôngcóđầuđềnh−đồhoạ,thựcđơnGopher,... II.3 Cáctừkhoáđịnhdạngkhối Cácthnhphầnđịnhdạngkhốidùngđểđịnhdạngcảmộtđoạnvănbản vphảinằmtrongphầnthâncủatiliệu.Cónhữngcặptừkhoáquantrọng sauđây: • ... Địnhdạngphầnđịachỉ • ... (nlchữsốtừ1đến6)Địnhdạngsáumứctiêuđề. Trang22 EbookTeam
  22. www.updatesofts.com HTMLcó6mứctiêuđềbaohmkiểuphôngchữ,cáchđoạntr−ớcsau cũngnh−khoảngtrốngcầnthiếtđểthểhiệntiêuđề.Mứccaonhấtl , kếđếnl chođến . Cáchthểhiệnphụthuộcvobộduyệt,nh−ngthôngth−ờngthì: Chữđậm,cỡlớn,căngiữa.Một,haidòngcáchtrênvd−ới. Chữđậm,cỡlớncănlềtrái.Một,haidòngcáchtrênvd−ới. Chữnghiêng,cỡlớn,cănlềtrái,hơilùivotrong.Mộthayhai dòngcáchtrênvd−ới. Chữđậm,cỡth−ờnglùivotrongnhiềuhơnH3.Mộtdòng cáchtrênvd−ới. Chữ nghiêng, cỡ th−ờng, lùi vo trong nhiều hơn H4. Một dòngcáchtrên. Chữđậm,cỡth−ờng,lùivotrongnhiềuhơnH5.Mộtdòng cáchtrên. • Đ−ờngphâncáchngangtiliệu • ... GiớihạnmộtParagraph ChỉlgiớihạnmộtParagraph.Cáchbitrídocácthnhphầnkháctạothnh. Th−ờngcókhoảngtrốngkhoảngmộtdònghaynửadòngtr−ớcparagraph,trừ khinằmtrongphầnđịachỉ.MộtsốbộduyệtthểhiệndòngđầucủaParagraph tụtvo. • Bẻdòng Bắtbuộcxuốngdòngtạivịtrígặptừkhoány.Dòngmớiđ−ợccănlề nh−dòngđ−ợckẻtựđộngkhidòngđóquádi. • ... Đoạnvănbảnđđịnhdạngsẵn Trang23 EbookTeam
  23. www.updatesofts.com Giớihạnđoạnvănbảnđđ−ợcđịnhdạngsẵncầnđ−ợcthểhiệnbằng phôngchữcóđộrộngkýtựkhôngđổi.NếukhôngcóthuộctínhWIDTHđi cùngthìbềrộngmặcđịnhl80kýtự/dòng.Bềrộng40,80,132đ−ợcthểhiện tối−u,còncácbềrộngkháccóthểđ−ợclmtròntrongthnhphầnđịnhdạng tr−ớc: ∗ Dấuxuốngdòngsẽcóýnghĩachuyểnsangdòngmới(chứkhôngcònl dấucách) ∗ khôngdùngnếucósẽđ−ợccoinh−lxuốngdòng. ∗ Đ−ợcphépdùngcácthnhphầnliênkếtvnhấnmạnh. ∗ Khôngđ−ợcchứacácthnhphầnđịnhdạngparagraph(tiêuđề,địachỉ). ∗ KýtựTABphảihiểulsốdấucáchnhỏnhấtsaochođếnkýtựtiếptheo ởvịtrílbộicủa8.Tuynhiênkhôngnêndùng. Vídụ: NguyễnvănTrỗiCửnhân. NguyễnviếtXuânKỹs−. • ... Tríchdẫnnguồntiliệukhác Dùng để trích dẫn một đoạn văn bản,th−ờng đ−ợc thể hiện bằng chữ nghiêngcócănlềlùivotrongvth−ờngcómộtdòngtrốngởtrênvd−ới. II.4 Cáctừkhoákhaibáodanhsách HTMLhỗtrợnhiềukiểuloạidanhsách,tấtcảđềucóthểlồng vo nhauvchỉnêndùngtrongphầnthâncủatiliệu( ... ). • ... Danhsáchđịnhnghĩa Dùngđểlậpdanhsáchcácthuậtngữvđịnhnghĩat−ơngứng Trang24 EbookTeam
  24. www.updatesofts.com vídụ Mèo Lmộtloạiđộngvật HoaNgọcLan Lmộtloithựcvật Trongvídụtrênthì: Chỉtênthuậtngữ Chỉphầnđịnhnghĩa.CóthểcóthêmthuộctínhCOMPACTđểchỉdẫn thêm l xếp v theo từng cặp. Lúc đó sẽ phải viết l vtiếptheol . • ... Danhsáchkiểuth−mục Danhsáchcácphầntửmtrongđómỗiphầntửdiđếnkhoảng20ký tự.Sau bắtbuộcphảil (ListItem) • ... Danhsáchkiểuthựcđơn Danh sách các lựa chọn trong một thực đơn. Sau phải l . vídụ Conmèo Conmèocon • ... Danhsáchcósắpxếp Danhsáchcósắpxếptheotrìnhtựhaymứcđộquantrọng.Sau phảil vcóthểthêmthuộctínhCOMPACT. • ... Danhsáchkhôngcósắpxếp Giống nh−ngdanhsáchkhôngđ−ợcsẵpxếp Trang25 EbookTeam
  25. www.updatesofts.com II.5 Cáctừkhoákhaibáoloạithôngtinvđịnhdạngmẫuchữ II.5.1 Khaibáoloạithôngtin Cónhữngcặptừkhoátuykhácnhaunh−nglạithểhiệnnh−nhau,cụ thểcónhữngcặptừkhoákhaibáoloạithôngtinnh−sau: ∗ ... Tríchdẫn ∗ ... Vídụvềmlệnh ∗ ... Nhấnmạnh ∗ ... Kýtựdong−ờidùnggõvotrênbnphím ∗ ... Nguyênvăn ∗ ... Rấtnhấnmạnh ∗ ... Chỉtênbiếnhaythamsố II.5.2 Địnhdạngmẫukýtự ∗ ... Thểhiệnchữđậm ∗ ... Chữnghiêng ∗ ... Chữđánhtrênmáychữ II.6 Lồnghìnhảnh Dùngđểlồnghìnhảnhvotiliệu.Khôngdùngđểchènsiêuvănbản khác.Cóthểthêmnhữngthuộctínhsau • ALIGN Cănlềtrên(TOP),giữa(MIDLE)hayd−ới(BOTTOM),cáckýtựvăn bảnđốivớihìnhảnh. • ALT Dùngtrongtr−ờnghợpcóthểbộduyệtkhônghiểnthịđ−ợchìnhảnh phảihiệndòngvănbảnthaythế. Trang26 EbookTeam
  26. www.updatesofts.com • ISMAP Hìnhảnhcódạngmộtbảnđồ,nghĩalcóthểchứacácvùngđ−ợc“ánh xạ”đếnnhữngURLvkhibấmvonhữngvịtríkhácnhautrênhìnhvẽđ−a đếntiliệukhácnhau. • SRC Đâylthuộctìnhbắtbuộc,vớigíatrịlmộtURLcủahìnhảnhđ−ợc lồngvo.Cúphápcũngnh−ởHREFtrongthnhphầnliênkết . II.7 Cáctừkhóalậpmẫubiểubảng(Forms) TừHTML2.0trởđi,cáctừkhoálậpbảngbiểuđ−ợcđ−avochophép nhậnđ−ợcphảnhồitừphíang−ờidùng,bằngcáchđặtnhữngtr−ờnginput (vosốliệu)bêncạnhnhữngthnhphầnkhác,chophépcóđộlinhhoạtrất đángkểtrongthiếtkếbảngbiểu: • ... Giớihạnmộtbảng Cóthểcónhiềubảngtrongmộttiliệusongthnhphầnnykhông đ−ợcphéplồngnhau.ThuộctínhACTIONlmộtURLchobiếtnơimnội dungcủabảngđ−ợcgửiđếnđểxửlý,mặcđịnhlURLcủatiliệuhiệnthời nếukhôngcóthuộctínhnyđikèm.Ph−ơngthứcgửituỳthuộcvogiaothức truynhậpmURLchỉracũngnh−giátrịcủacácthuộctínhMETHODv ENCTYPE.Mộtcáchtổngthể: ∗ METHODdùngđểchọnph−ơngthức ∗ ENCTYPEđịnhdạngkhuôncủasốliệutrongtr−ờnghợpgiaothứckhông baohmluônchínhkhuôndạngấy. NếuthuộctínhACTIONlmộtURLvớigiaothứcHTTP,thuộctính METHODphảichứamộtph−ơngthứcHTTPtheotiêuchuẩnIETF.Mặcđịnh củaMETHODlGET.Mặcdùtrongnhiềutr−ờnghợp,ph−ơngthứcPOST Trang27 EbookTeam
  27. www.updatesofts.com đ−ợc−achuộnghơn.Vớiph−ơngthứcPOST,thuộctínhENCTYPElmột kiểu MINE cho biết khuôn dạng của số liệu đ−a đến, mặc định l application/x/_www_form_rlencoded (tên ứng dụng/x_www_bảng m hoá theorunlength).Trongbấtkỳtìnhhuốngnothìvềmặtlogic,nộidungcủa bảngmsẽgồmnhữngcặptêngọi/giátrị.Têngọith−ờngtrùngvớigiátrị củathuộctínhNAME. • ... Giớihạnmộttr−ờngInput Dùngđểkhaibáomộttr−ờngmng−ờidùngđ−asốliệuvo.Gồmcó cácthuộctínhnh−sau: ∗ ALIGN:Cácgiátrịchophéphontongiốngnh−thuộctínhALIGNcủa thnhphần ∗ CHECKED: ĐểchỉmộtnútchọnkiểuđánhdấuhaykiểunútRadio. ∗ MAXLENGTH: Sốkýtựtốiđacóthểgõvomộttr−ờng(mặcđịnhlvôhạn),đ−ợc phéplớnhơnSIZEvkhiđótr−ờngnysẽđ−ợccuộn. ∗ NAME: Thuộctínhhaydùngnhấtđểchỉtêngọit−ợngtr−ng,dùngkhitruyền đinộidung. ∗ SIZE Khaibáokíchth−ớchayđộchínhxáccủamộttr−ờngtuỳtheokiểucủa nó.Vídụđểkhaibáomộttr−ờngrộng24kýtựthìtakhaibáonh−sau: INPUTTYPE=textSIZE=”24” ∗ SRC MộtURLcủahìnhảnh,chỉdùngvớiTYPE=IMAGEtrongHTML2.0. ∗ TYPE Trang28 EbookTeam
  28. www.updatesofts.com Khaibáokiểusốliệu(ngầmđịnhlkýtự),vớicáckiểusau: +CHECKBOX DùngchokiểulogicBoolvớigiátrịmặcđịnhl‘on’ +HIDDEN Khônghiệnlênđốivớing−ờisửdụngnh−ngvẫnđ−ợcgửicùngvớinội dungcủabảng. +IMAGE Mộttr−ờngmanghìnhảnhmkhibấmvođó,bảngsẽđ−ợctrìnhv cáctoạđộcủađiểmchọntínhbằngpixeltínhtừgóctráitrêncủaảnhcùng cáccặptên/trịkhác,trongđótoạđộxthìtêncủatr−ờngcóthêm.x,toạđộy thêm.yvo.MọithuộctínhVALUEđềubịbỏqua.Cònchínhhìnhảnhthì dothuộctínhSRCchỉra. +PASSWORD: Cũnggiốngnh−TEXTcóđiềukýtựkhônghiệnlênkhing−ờidùnggõ vo(nh−khivomậtkhẩu). +RADIO: Đểnhậnmộtgiátrịtrongsốcácgiátrịcóthểcó,vđòihỏiphảicó VALUEđikèm. +RESET:Lnútmkhibấmvosẽđặtcáctr−ờngInputvềcácgiátrị banđầu.Nhncủanútđ−ợckhaibáonh−ởnútSUBMIT. +SUBMIT:Lnútmkhibấmvosẽkếtthúcquátrìnhvosốliệuv bảngsẽđ−ợcgửiđi.ThuộctínhVALUEchophépgánnhnchonút.Nếu thuộctínhNAMEcũngcóthìmộtcặptên/trịcũngđ−ợcgửiđi. +TEXT:Dùngđểvomộtdòngkítự,th−ờngđicùngvớiSIZEv MAXLENGTH. Trang29 EbookTeam
  29. www.updatesofts.com +VALUE:Dùngđểkhaibáogiátrịbanđầu(cũngcónghĩalmặc định)củatr−ờngkítựhaysố,hoặcgiátrịtrảlạikhiđ−ợcchọnđốivớitr−ờng logicBool.Thuộctínhnybắtbuộcđốivớitr−ờngthuộctínhRADIO. • ... Mộtthnhphầnlựachọnthìbaogồmnhiều tuỳchọn. Chophépng−ờidùngchọntừmộtdanhsáchmtừngphần tửđ−ợc khaibáobằng vớicácthuộctínhsau: ∗ MULTIPLE: Cho phép chọn nhiều phần tử cùng một lúc ( ). ∗ NAME:Khaibáotênbiếnt−ơngứng ∗ SIZE: Khaibáosốphầntửhiệnlên,nếu>1thìhộpđốithoạisẽlmột danhsách. Thnh phần SELECT th−ờng đ−ợcthểhiệnd−ớidạngmột danh sách kéo xuốnghoặckéolên.NếukhôngcóOPTIONnocóSELECTDthìphầntử đầutiêntrongdanhsáchsẽmặcđịnhlđ−ợcchọn. Vídụ Toán Lý Hoá • Mộttuỳchọntrongmộtthnhphầnlựachọn Chỉxuấthiệntrongmộtthnhphần ... ,biểuthịmột tuỳchọnvcóthểcócácthuộctínhsau: Trang30 EbookTeam
  30. www.updatesofts.com ∗ DISABLED:Chỉrarằngch−adùngđếntrongbảngnymsẽdùngtrong t−ơnglai. ∗ SELECTED:Chỉrarằngtuỳchọnnylmặcđịnh. ∗ VALUE:Nếucósẽchobiếtgiátrịtrảlạinếuđ−ợcchọn,mặcđịnhll nộidungcủachínhthnhphầnny(nhữnggìmchínhng−ờisửdụngnhìn thấy). ... Mộttr−ờngnhậnsốliệunhiềudòng, chophépng−ờidùngnhậpnhiềuhơnmộtdòngkýtự Vídụ Liênhiệpsảnxuấtphầnmềm(CSE) Số21LýNamĐếHNội Đoạnnằmgiữa v đ−ợcdùnglmgiá trịbanđầuchotr−ờngny. lbắtbuộckểcảkhigiátrịban đầuđókhôngcó.Khichuyểnđicácdòngcầnkếtthúc bằng CR/CL. Các thuộctínhROWSvCOLSđểkhaibáokíchth−ớcdòngvcộtcủacửasổsố liệu,nếusốliệunhiềuhơnthìbộduyệtsẽchophépcuộn(scroll). II.8 Lậpbảng • Giớihạnbảng Mặcđịnhbảngkhôngcóđ−ờngbaonếukhôngđivớithuộctínhBORDER. Cócácthuộctínhsau: ∗ Đểđịnhnghĩamộtbảngcóđ−ờngbao,khônglmảnhh−ởng đếnđộrộngcủabảng. Trang31 EbookTeam
  31. www.updatesofts.com BORDER=”giátrị”cócácgiátrịxácđịnh(0,1,2 )t−ợngtr−ngchocácmu củađ−ờngbaonếuchogiátrị=0thìđ−ờngbaocómugiốngmumnhình. Chophépđiềuchỉnhđộdycủađ−ờngbaongoiđậmhơnđ−ờngbaotrong đểdễnhìnhơn. ∗ CELLSPACING= Cácgiátrịlkhoảngcáchgiữacácô ∗ CELLPADING= Cácgiátrịxácđịnhkhoảngcáchgiữanộidung củaôvđ−ờngbao. Vídụ chotabảng Compactnhấtcóthểcó(dnhtấtcảchonộidung). ∗ WIDTH= NếuđicùngvớiTABLEthuộctínhnycóýnghĩamôtảchiềurộng mongmuốncủabảng.Th−ờngthìbộduyệttựtínhtoánsaochobảngđ−ợcbố tríhợplý.Dùngthuộctínhnybắtbuộcbộduyệtphảicốgắnglmsaoxếp đ−ợccácôvobảngcóđộrộngmongmuốnđó. Nếuđicùngvới hay lạicóýnghĩat−ơngtựđốivớimộtô. • ... Địnhnghĩamộthng Khaibáomộthngcủabảng,vớithuộctínhALIGHNvVALIGNđể chỉracáchcănlềcủanộidungtrongcácôcủahnghiệnthời. ∗ ROWSPAN:Chobiếtôhiệnthờichiếmmấyhngcủabảng,mặcđịnhl 1. ∗ ALIGN Nếunằmtrong nócóýnghĩađốivớiđầuđềcủabảng nằmtrênhaynằmd−ới,cógiátrịhoặcTOPhoặcBOTTOMngầmđịnhl TOP.Nếunằmtrong , ,hay cóthểcócácgiátrịLEFT, Trang32 EbookTeam
  32. www.updatesofts.com CENTERhayRIGHTvđiềukhiểnviệcđặtnộidungcủaôcănbêntráihay vogiữa,hayởôbênphải. ∗ VALIGN Nằm trong , hay có thể có các giá trị TOP, MIDDLE,BOTTOMhayBASELINEđểđiềukhiểnviệcđặtnộidungcủaô lêntrên,(vogiữatheochiềudọc)hayxuốngd−ớivcũngcóthểtấtcảl cácôtronghngcùngcăntheomộtđ−ờngnằmnghang • ... Địnhnghĩamộtô Cónghĩaldữliệubảng(TableData),chỉđ−ợcxuấthiệntrongcùng mộthngcủabảng.Mỗihngkhôngnhấtthiếtphảicócùngsốôvìdòng ngắnhơnsẽđ−ợcchắpthênôrỗngvobênphải.Mỗiôchỉđ−ợcchứacác thnhphầnbìnhth−ờngkhácnằmtrongphầnthâncủatiliệu.Cácthuộc tìnhmặcđịnhl: ALIGN=leftvVALIGN=middle. Cácmặcđịnhnycóthểthayđổibởicácthuộctínhtrong vlại thayđổitiếpbởithuộctínhALIGNhoặcVALIGNkhaibáoriêngchotừngô. Bìnhth−ờngmặcđịnhthìnộidungsẽđ−ợc“bẻdòng”chovừavokhổrộng củatừngô.DùngthuộctínhNOWRAPtrong đểcấmviệcđó. .. . cũng có thể chứa các thuộc tính NOWRAP, COLSPAN v ROWSPAN. +NOWRAP:Khidùngthuộctínhnyđềphòngôquárộng. +COLSPAN:Cóthểxuấthiệntrongbấtkỳôno( hay )vchỉra rằngôđóchiếmmấyôcủabảng,mặcđịnhl1. • ... Ôchứatiêuđề Trang33 EbookTeam
  33. www.updatesofts.com Cónghĩaltiêuđềcủabảng(TableHeader),cácônyt−ơngtựnh− cácôbìnhth−ờngkhácđ−ợcđịnhnghĩabằng ,cóđiềuphôngchữl đậmvcóthuộctínhmặcđịnhlALIGN=Center. . . . cũng có thể chứa thuộc tính VALIGN, NOWRAP, COLSPANvROWSPAN. • ... Đầuđềcủabảng. Đặtđầuđềchomộtbảngnênphảinằmtrongmộtcặp song khôngđ−ợcnằmtronghnghaycột.ThuộctínhmặcđịnhlALIGN=Top (đầuđềđặtởđầubảng),songcóthểđặtlALIGN=Bottom(cuốibảng).Đầu đềcóthểchứabấtkỳthnhphầnnomộtôcóthểchứavluônđ−ợccănlề vogiữabảng(theochiềungang)vcóthểcũngcóbẻdòngchophùhợp. Vídụtacóthểtạođ−ợcbảnggồm2dòng3cộtnh−sau A B C D E F Đặcbiệtôrỗngthìkhôngcóđ−ờngbao,muốnôrỗngcóđ−ờngbao phải dùng dấu cách không bẻ dòng. Có thể lợi dụng ROWSPAN v COLSPANđểtạobảngcóôchồngchéolênnhaunh−ngkhônglênlạmdụng. Trang34 EbookTeam
  34. www.updatesofts.com IIICác−unh−ợcđiểmcủaHTML • Ưuđiểm:NgônngữHTMLcó−uđiểmsovớinhiềuloạingônngữkhác đól: +Dễđọc,dễhiểu,dễsửdụng +KhôngphụthuộcvoHệđiềuhnh +Giảmthôngl−ợngđ−ờngtruyền +Liênkếtnhiềudạngthôngtinvcácdịchvụthông tin khác trên Mạng • Nh−ợcđiểm:NgônngữHTMLcómộtsốnh−ợcđiểmcơbảnsau +Lngônngữthôngdịch,dođónósẽgiảmtốcđộthựchiệncủacác ứngdụngtrênWeb +Khóđảmbảovềantonvbảomật +Khônghỗtrợđangônngữ. Phầnii truynhậpcơsởdữliệutheogiaodiệnCGI Trang35 EbookTeam
  35. www.updatesofts.com ch−ơngiGiớithiệuch−ơngtrìnhCGI Nh−chúngtađbiếtsứcmạnhcủaHTMLlcókhảnăngsắpxếpmột sốl−ợngthôngtinrấtlớncáctậptinvotrongcùngmộttrang.Cáctậptin xuấthiệntrênmộttrangvềmặtvậtlýcóthểl−utrútrongcùngmộtmáytính d−ớidạnglchínhtrangđó,hoặcl−utrúởmộtnơibấtkỳnokháctrên WWW.HTMLchỉchuyênlmnhiệmvụlthamchiếuvocáctậptinny bằngcáchbáochoBrowserbiếtvịtríchínhxáccủachúng,nênBrowsercó thểtìmđếnchúngmộtcáchnhanhchóngkhicần.Nh−ngchúngcónh−ợc điểmlchỉhạnchếtrongphạmvinộidungtĩnh,nghĩalnhữngthôngtinm Webhiểnthịđ−ợcchỉlthôngtinkhôngthayđổivídụnh−cácbibáo,đơn thuốc...,chúngkhôngthểcungcấpcáclệnhmáyđặcbiệtđểmáylmtheo, vđặcbiệtlchúngkhôngthểkhaitháccơsởdữliệubênngoivìvậykhông đápứngđ−ợcnhu cầuphứctạpcủaUSER.Đểđápứng đ−ợc nhu cầu đó ng−ờitađ−aragiảipháplviếtmộtch−ơngtrìnhcókhảnăngmộtmặtgiao tiếpvớiWebServer,mặtkháccóthểthaotácđ−ợcvớicơsởdữliệu.Một ch−ơngtrìnhnh−vậycóthểgọil“cổng”(gateway)giữaWebServervCơ sởdữliệu.Ch−ơngtrìnhchạyngoiđ−ợcciđặtlênhệthốngmychủđó chínhl CGI(commongatewayinterface). I Cáckháiniệmcơbản I.1 Tiliệutĩnh(StaticDoccuments) Đólkiểutiliệuđ−ợcphânphátrấtđơngiảntừ hệthốngfilecủa Server.SauđóPhầnmềmWebServersẽtiếnhnhtìmkiếmvxácđịnhđúng vịtrífileđótrênổcứng,mởnómộtcáchtrựctiếpvtrảlạikếtquảcho Client.Tiliệutĩnhsẽltốtnhấtđểsửdụngkhithôngtincósẵntrênổđĩa cứng,vkhôngthayđổi.Khicơsởdữliệulnhỏ,cáchtiếpcậnnycóhiệu quảrõrng,ServercóthểđápứngnhucầucủaClientmộtcáchnhanhchóng. Trang36 EbookTeam
  36. www.updatesofts.com Tuynhiênnócóhạnchếlkhôngnăngđộng,khôngđápứngnhucầuthông tinvìvậykhôngđápứngđ−ợcnhữngyêucầuphứctạpcủang−ờisửdụng. Quátrìnhphânpháttiliệutĩnhđ−ợcthểhiệnởhình1.1. Browsergửiyêucầu Browser Server Servergửitrảtiliệu Hình1.1Phânphátmộttiliệutĩnh I.2 Tiliệuđộng(DynamicdoccumentsDoccumentonthefly) Khônggiốngnh−tiliệutĩnh,tiliệuđộngđ−ợcsinh ra trong quá trìnhđangthựchiện“onthefly”.Trongtr−ờnghợptiliệutĩnh,cóthểđọc dữliệutừmộtfileđangtồntạithìnóichungtiliệuđộngcóthểkhôngcần quantâmđếnđiềuđó.Vídụ,tiliệuđộngcóthểđ−ợcsinhratừcơsởdữ liệu,từcácph−ơngtiệnkhoahọcnođónh−hệthốngkiểmtraâml−ợng... Cáctiliệumth−ờngxuyênthayđổivgửitínhiệumộtcáchtrựctiếpđến clientnh−chúngđđ−ợctạo,vsẽđ−ợcl−utrữtronghệthốngfile.Trong tr−ờnghợpkhác,chúngcòncóthểtrùngkhớpvớinộidungđđ−ợchotrộn, vớimộtsốl−ợngnộidungđđ−ợcsinhrakhitrangđ−ợcphânphátmộtcách thậtsự. Sựkhácnhaucơbảngiữatiliệutĩnhvtiliệuđộngđóltiliệutĩnhthì đ−ợcphânpháttừhệthốngfiletrênđĩacứngcòntiliệuđộngthìđ−ợcsinh ramộtcáchtạmthờingaytrongthờigianlmviệc“onthefly”. I.3 Mộtcáchtiếpcậntớitiliệuđộng:CôngnghệServersideinclude HệthốngHTMLcóthểdễdngtạoranhữngliênkếtbấtkỳvớitiliệu nođó.Tuynhiênthithoảngchúngcũngmongmuốncóđ−ợcmộttiliệu Trang37 EbookTeam
  37. www.updatesofts.com HTMLlớnđ−ợctậphợptừnhữngtiliệunhỏhơn.Đặtravấnđềltạisao mộttiliệuWeblạikhôngthểđơngiảnchỉlgồmnhữngtiliệuđ−ợctham chiếu đến một bản vật lý chứa đựng bản copy thứ hai. Hng loạt những versioncủaHTMLkhôngchophépđiềuny.Tuynhiênkhôngcógìcảntrở đ−ợcWebServerthựchiệnđ−ợcđiềuđómiễnlcácversioncủaHTMLbao gồmcácthnhphầnđđ−ợcchophép.KhiBrowsercóyêucầutiliệuđối vớiServer,Serverphântíchtiliệuvnhìnmộtcáchtrựctiếpvotiliệu chính(maindoccument),sauđóServersẽtruycậpđếntậptiliệu(include document)vlắpráptiliệuhonchỉnhrồipháttínhiệuhonthnhnhiệm vụvgửikếtquảtớiBrowser.CáchtiếpcậnnygọilServersiteinclude đ−ợcthểhiệnbằngsơđồsau(hình1.2). Browser 5.Serverpháttínhiệu 1.Browseryêucầuti honthnhvgửi liệutừphiácServer trảtiliệu Server 4.Servertíchhợpv 2.Serverphântíchti honthnhtiiệu liệuvtìmkiếm Included Tiliệuchính Tiliệuthnhphần 3.Servertruycậptiliệu Hình1.2CôngnghệServersideInclude Trang38 EbookTeam
  38. www.updatesofts.com II CGI(CommonGatewayInterface) II.1 CGIlgì: CGIlmộtchuẩndùngđểpháttriểncácứngdụngđộnglêntrangWeb vsửdụnggiaothứctruyềnsiêuvănbản(HTTP)đ−aracácnộidungđộng nytớiBrowser.VchuẩnnyđhỗtrợWebServerthaotácvớicơsởdữ liệu.Tuynhiên,CGIrấtkhósửdụngvkhảnăngphânphốit−ơngtácrấtbị hạnchế,CGIchủyếuđ−ợcdùngđểtruynhậpthôngtinthôngquacácForm. Khing−ờisửdụngnhậpthôngtinvotừbnphím,WebBrowsergửicác thôngtinđóchoWebServer.WebServernhậncácthôngtinđógọithựchiện mộtngữtrìnhGatewayt−ơngứngvchuyểncácthôngtinnychoGateway thôngquachuẩnCGI.Khiđócácthôngtintừng−ờisửdụngđ−ợcchuyểntới Gateway thông qua các biến môi tr−ờng hoặc dòng nhập chuẩn. Sau đó Gatewayphântích,xửlýcácthôngtinđóvthựchiệncôngviệccủamình. Cuối cùng Gateway trả về các thông tin cho Web Server để Web Server chuyểncácthôngtinnytớing−ờisửdụnghoặcl−ugiữdữliệutrongcơsở dữliệu.GatewaycóthểlmộtngữtrìnhScripthaymộtch−ơngtrìnhđ−ợc viếtbằngC/C++,Perl.. II.2 MụctiêucủaCGI Chuẩn CGI đ−ợc phát triển bởi NCSA (National Center for SupercomputingApplications)đểđápứngnhucầucủang−ờisửdụngbằng cáchchạymộtch−ơngtrìnhngoiphùhợp.Trongphầnthêmvomộtgiao diệnchuẩnphùhợp,CGItìmkiếmvsuyluậnđểcóthểđảmbảochothao tácnhậpvocủauser,thôngth−ờngFormgiaodiệnsẽkhôngmấtvìnhờgiới hạncủahệđiềuhnhServer.ChuẩnCGIcốgắngcungcấpmộtch−ơngtrình chạyngoivớithôngtincókhảnăngvềServervBrowser.Trongphầnthêm votacóthểbiếtthêmthôngtincủauser.ChuẩnCGIcốgắngpháttriểnmột ứngdụngCGIthậtđơngiảnvdễsửdụng.PhầnlớnStandardCGIđềuđạt Trang39 EbookTeam
  39. www.updatesofts.com đ−ợcnhữngthnhcông.Rõrngcáchtiếpcậnnylhiệuquả,đặcbiệtlkhi kếthợptốtvớihệđiềuhnh,tínhdễdngthíchnghivđơngiảncủaCGI Standardlmnótrởnênphổbiếnđểsửdụng.Nh−ngđôikhinócũngcó nhữnghạnchếnhấtđịnhđólkhidữliệuđ−avoquáphứctạp,đặcbiệtl khicôngviệcđòihỏichínhxácvtỉmỉ.Tuynhiênnóvẫnrấtphổbiếnv pháttriểnvớinhiềucôngcụcósẵn,đặcbiệtltốtđốivới C&PERN (CGI programminginC&PERN). II.3 Cáchthứchoạtđộngcủamộtch−ơngtrìnhCGI PhầnlớntiliệuđộngđềutuânthủtheoluậtphốihợpcủaServer.Điều đócónghĩaltiliệuđộngđ−ợcsinhramộtcáchtonvẹnbởimộtch−ơng trìnhngoiđ−ợcthựchiệnbởiyêucầucủaUser.Ch−ơngtrìnhngoisẽtiếp nhậnthamsốtừvănbảnnh−mộtđầuvochuẩnvđ−aramộtkếtquảnh− mộtđầurachuẩn.KhiBrowseryêucầutiliệutừphíaServer,Servernhận đ−ợctínhiệuyêucầuvthựchiệnCGI,Ch−ơngtrìnhCGIsẽsửdụngnhững tinguyênbênngoinh−đĩafiles,cơsởdữliệuvcácph−ơngtiệnkhoahọc. Saukhithựchiệnxongch−ơngtrìnhCGIđ−aramộttiliệuWebmới.Server pháttínhiệuhonthnhnhiệmvụvgửitrảtiliệuchoBrowser(Minhhoạ Trang40 EbookTeam
  40. www.updatesofts.com hình1.3). Browser 1.Browseryêucầuti 5.Serverpháttínhiệu liệutừphíaServer honthnhtớiBrowser Server 4.CGIprogrammingđ−a 2.Servernhậnđ−ợctínhiệuyêu ratiliệuWebmới cầuCGIprogrammingthựchiện CGIprogramming 3.Ch−ơngtrìnhCGIsửdụngtinguyênrỗi Diskfiles Database Scientific Instrume Hình1.3CơchếCGI III ChuẩnCGI CGI Standanrd có mục đích xác định sẵn một giao diện giữa Web Servervch−ơngtrình.Nhữngđiềucầnchomộtchuẩnđóltiliệuđộngbản thânnótựsinhratrangWebkhichạymộtch−ơngtrình.KhiServerthựchiện mộtch−ơngtrìnhđểthoảmnyêucầutừBrowser.Browsersaukhiđ−ara yêucầusửdụngHTTP.Serversẽtrảlờibằngcáchhoặccấpphátmộttiliệu, hoặcmtrạngthái,hoặcđ−aramộtURLkhácđ−ợcchấpnhậntừkếtquảcủa mộtgiaothức,Vìvậych−ơngtrìnhCGIth−ờngxuyên cầnđếnHTTP một cách trực tiếp. Đây l một khía cạnhchính yếu v quan trọng trong CGI Trang41 EbookTeam
  41. www.updatesofts.com programming.YêucầucủaHTTPcóthểcóvikiểukhácnhau,ng−ờitagọi lph−ơngpháp.Cóhaiph−ơngphápchínhđólph−ơngphápPOSTvGET. III.1 Ph−ơngphápGET Ph−ơngphápđ−ợcsửdụngkhicómộtyêucầumộttiliệucủang−ời sửdụng.NếuđyêucầumộtURLchoch−ơngtrìnhCGIthìch−ơngtrình CGIsẽsinhramộttiliệumới,mộtmlỗi.Ch−ơngtrìnhCGIcóthểđánh dấu những tình huống đ thực hiện vo biến môi tr−ờng REQUEST_METHODchứađựngvoxâuGET.Thôngtinyêucầucủang−ời dùngsẽđ−ợcl−utrữtrongbiếnmôitr−ờngQUERY_STRING. III.2 Ph−ơngphápPOST Ph−ơngphápPOSTđ−ợcsửdụngđểtruyềnthôngtintừBrowsergửi đếnServer.Trongphầnlớncáctr−ờnghợpthôngtinyêucầuđ−ợcl−uvo biếntrongStandardInput.Ch−ơngtrìnhCGIsẽđọccácthôngtintrìnhdiện từStandardinputvthựchiệnch−ơngtrình.Trongtr−ờnghợpnybiếnmôi tr−ờngREQUESTMETHODsẽđ−ợcđặtvoxâuPOST.Saukhithựchiện nhiệmvụch−ơngtrìnhđ−ợcgọisẽsinhramộttiliệumới,mộtmlỗihay mộtURLkhác. III.3 Sựkhácnhaugiữaph−ơngphápGET&POST Sựkhácbiệtcơbảngiữahaiph−ơngphápnylởcáchtruyềndữliệu dạngFormtớich−ơngtrìnhCGI.Nếusửdụngph−ơng pháp GET, thì khi ClientyêucầutớiServerxâuQUERYsẽđ−ợcghitiếpvoURLcủach−ơng trình.Ưuđiểmcủaph−ơngphápnylởchỗcóthểtruynhậpch−ơngtrình m không cầnForm.Cònvớiph−ơngphápPOSTthìđộ daig dữ liệu sẽ khôngbịhạnchếnh−dùngph−ơngphápGET Trang42 EbookTeam
  42. www.updatesofts.com III.4 Dòngvochuẩn(StandardInput) Mộtch−ơngtrìnhchạyngoichuẩncódạngdữliệusẽđ−ợcl−utrữ trongbiếnmôitr−ờnghaythôngquamộtdònglệnh.Cáchtiếpcậnnh−vậy cóthểgặprủirovớimộthệđiềuhnhlkhisốl−ợngthôngtinquálớn.Tuy nhiênchuẩnCGIchấpnhậncáchtiếpcậnny,nóchophépvcổvũcáchtiếp cậnnyvớimộtkiểudữliệuthôngquach−ơngtrìnhchạyngoinh−Standard input,cónghĩaldữliệucóthểtruynhậpthôngqua Standard I/O. Trong ngônngữlậptrìnhCgọilcáchm.Khikhôngcódữliệuđ−ợctrìnhdiệntừ ng−ờisửdụnghaymộtformdữliệuđđ−ợctrìnhdiệnvớiph−ơngpháp GET,thìchuẩnvocũngkhôngchứađựngthôngtin. Tuynhiênkhidữliệuđ−ợcgửivotheoph−ơngphápPOST,thìdữliệusẽ đ−ợcxuấthiệntrongdòngchuẩnvo(StandartInput) III.5 Dòngrachuẩn(CGIStandardOutput) Khichạymộtch−ơngtrìnhCGIth−ờngmongđợiđ−arakếtquảlmột trongbađốit−ợngnh−sau: • MộttiliệuWebđúngđắn:trongtr−ờnghợpnycầnquantâmđếnkiểu dữliệusẽđ−ara. • Mộtmlỗi:Nếumộtlỗixuấthiệnch−ơngtrìnhCGIcóthểgửiramộtm trạngtháicủatiliệu,hoặcmộtthôngbáolỗichong−ờidùng • Đ−aramộtURLkhác:NếuServerkhôngtrựctiếpgiảiquyếtđ−ợcyêucầu củang−ờisửdụngthìnósẽcungcấpmộtđịachỉURLkhác. Trang43 EbookTeam
  43. www.updatesofts.com ch−ơngii xâydựngmộtch−ơngtrìnhCGItrênC I TruyềnsốliệuchoCGIgateway WebServercóthểchuyểnthôngtinchogatewaybằngthamsốdòng lệnh,bằngbiếnmôitr−ờnghoặcbằngdòngnhậpchuẩn. I.1 Truyềnthôngtinquathamsốdònglệnh Taxemxéttr−ờnghợpWebServertruyềnthôngtinchocácgateway qua tham số dòng lệnh (command line argument). Trong tr−ờng hợp ny, WebServertáchchuỗithamsốdònglệnhthnhcáctừriêngrẽvphâncách chúngbằngcácdấucộng(“+”)rồiđặtchúngvothamsốdònglệnh.Từđầu tiêncủachuỗiyêucầusẽtrởthnhphầntửđầutiênngaysautêncủangữ trình.Chúýlnếuchuỗiyêucầudiquáđộdiquyđịnhcủathamsốdòng lệnhthìServersẽkhôngghigiátrịgìvothamsốdònglệnhmbiếnmôi tr−ờngQUERY_STRINGsẽchứagiátrịđó. I.2 Truyềnthôngtinquabiếnmôitr−ờng Vớitr−ờnghợpny,cácthôngtinvềyêucầucủaWebBrowserđ−ợc WebServertruyềncho ngữtrìnhCGIthôngquacácbiến môi tr−ờng của Server.Ph−ơngthứctruynhậpcácbiếnmôitr−ờngcủangữtrìnhCGIphụ thuộcvongônngữviếtnênngữtrìnhđó.Nếumộtbiếnmôitr−ờngkhông thíchhợptrongngữcảnhyêucầuthìnósẽkhôngđ−ợcthiếtlậphoặcsẽđ−ợc đặtgiátrịlmộtchuỗirỗng.Cácbiếnmôitr−ờng sau đâyđ−ợcdùngđể chuyểnthôngtinchoWebServertớicácngữtrìnhCGI: • QUERY_STRING:NếuURLcóchứachuỗiyêucầu,biếnnysẽchứagiá trịcủachuỗiyêucầuđó. Trang44 EbookTeam
  44. www.updatesofts.com • CONTENT_TYPE:Biếnnysẽđ−ợcxácđịnhtrongtr−ờnghợpnếudữ liệuđ−ợcgắnvoyêucầuvchuyểnquadòngnhậpchuẩn.Nóchỉrakiểu MINEcủadữliệuđó. • CONTENT_LENGTH:Chứagiátrịđộdicủadữliệunếudữliệuđ−ợc gắnvoyêucầuvchuyểnquadòngnhậpchuẩncủaGateWay. • PATH_INFO:Chứabấtkỳdữliệunođ−ợcthêmvoURL • PATH_TRANSLATED: Chứa thông tin đ−ợc đ−a ra trong biến PATH_INFOnh−ngđ−ợcthêmvođầuđ−ờngdẫntớigốccủaWebServer. • GATEWAY_INTERFACE:XácđịnhsốhiệuphiênbảncủaCGImWeb Serverđangsửdụng,d−ớidạngtên/sốhiệu. • REMOTE_USER:têncủang−ờisửdụngcủamáygửiyêucầu. • REMOTE_ADDR:ĐịachỉInternetcủamáygửiyêucầu. • REMOTE_HOST:Têncủamáygửiyêucầu • AUTH_TYPE:ph−ơngthứcxácthựcđ−ợcServersửdụng. • REQUERY_METHOD: Chỉ ra ph−ơng thức yêu cầu. Với các yêu cầu HTTP,cácph−ơngthứcyêucầucóthểlGET,POST,PUTvHEAD. • SCRIPT_NAME:Chứađ−ờngdẫnảotớingữtrìnhđangđ−ợcthihnh. • SERVER_NAME:TênhoặcđịachỉIPcủaWebServer. • SERVER_PORT:Sốhiệucủacổngnhậnđ−ợcyêucầu. • SERVER_PROTOCOL:Tênvsốhiệuphiênbảncủagiaothứcyêucầu • SERVER_SOFTWARE:XácđịnhphầnmềmServerđangdùng. NhữngthôngtintrongphầnđầucủaHTTPcũngcóthể đ−ợc Web Server chuyểnchongữtrìnhquanhữngbiếncótênbắtđầubằngHTTP.Mộtsốbiến thôngth−ờngl: • HTTP_ACCEPTchỉracáckiểuMINE,mWebBrowserchấpnhậnđ−ợc Trang45 EbookTeam
  45. www.updatesofts.com • HTTP_USER_AGENTChuỗinhậndạngkháchhng.Thôngth−ờngltên vsốhiệuphiênbảncủaWebBrowser. Hầuhếtviệctruycậpdữliệuvocủamộtch−ơngtrìnhCGIlthôngquacác biếnmôitr−ờng. I.3 Truyềnthôngtinquadòngnhậpchuẩn Nếumộtyêucầuđ−ợctạobởiph−ơngthứcHTTPPOST,dữliệutừ WebBrowserđ−ợcWebServergửichongữtrìnhCGI(gateway)quadòng nhậpchuẩncủanó.CáckiểuMINEcủadữliệuvđộdicủadữliệuđ−ợc chứa trong các biến môi tr−ờng CONTENT_TYPE v CONTENT_LENGTH. II XửlýcácFORM XửlýcácFormlmộttrongnhữngứngdụngquantrọngnhấtcủaCGI. FormdoHTMLtạorachophépng−ờisửdụngnhậpcácthôngtinhaydữ liệu.Saukhinhậpcácthôngtinhaydữliệuđóđ−ợcgửitớiServernhằmthức hiệnch−ơngtrình(cóliênquanđếnform)đểgiảimformđó.Ch−ơngtrình xửlýthôngtinvsauđógửitrảlạichong−ờisửdụng. II.1 TruycậpdữliệutừForm II.1.1 Cácxâuquery MộtcáchđểgửidữliệudạngFormtớich−ơngtrìnhCGIlghitiếpcác thôngtinvềformvođịachỉURLđạtsaudấuhỏi.CácdạngURLcóthểnh− sau: Saudấuchấmhỏiđ−ợcgọilxâuquery(querystring).Khichuyểnđịachỉ URLvxâuquerytớiServer,Serversẽgọich−ơngtrìnhCGIđ−ợcchỉđịnhở phầnURLtr−ớcdấuhỏivl−utrữởphầnsaudấuhỏivobiếnmôitr−ờng Trang46 EbookTeam
  46. www.updatesofts.com II.1.2 Ch−ơngtrìnhxửlýForm Để thực hiện một ch−ơng trình CGI cần phải bắt đầu từ một trang HTMLcóchứamộtURLchỉđếnứngdụngCGIđó.MộttrangHTMLđócó thểviếtnh−sau: chobạn CGIApplicationExample Tenban: Tuoiban: Formnhậpdữliệu: Trang47 EbookTeam
  47. www.updatesofts.com TrongFormtrêntathấycóhainút: Chạy,Clickhere v Nhậplại Nút Chạy,Clickhere dùngđểchuyểnnhữngthôngtintrongFormtớich−ơng trìnhCGI.Saukhinhậpnhữngthôngtincầnthiếtvchọn Chạy,clickhere ta sẽnhậnđ−ợckếtquảvềnhữngthôngtintrạngtháinh−độdichuỗiyêucầu, ph−ơngpháptruynhập,tênmáychủ,giaothứcsửdụng...doch−ơngtrình CGIcungcấp. Nút Nhậplại dùngđểxoácácthôngtinđđiềntrongForm. Nộidungch−ơngtrìnhCGI(ktra.c)đ−ợcviếtbằngngônngữCtrìnhbychi tiếttrongphầnphụlục. Kếtquảtrảlạicủach−ơngtrìngCGItrênmnhìnhWebBrowser: Trang48 EbookTeam
  48. www.updatesofts.com II.2 Hoạtđộngcủach−ơngtrìnhCGI II.2.1 LấydữliệutừFormvxửlýdữliệu Saukhing−ờidùngnhậpdữliệuvoFormvtrìnhdiệnlênServer,nếu sửdụngph−ơngphápyêucầulph−ơngphápPOSTthìWebServersẽxác địnhmộtsốgiátrịt−ơngứngvomộtsốbiếnmôitr−ờngvđ−adữliệucủa ng−ờidùngvotrongdòngvochuẩn(StandardInput)củach−ơngtrìnhCGI. Khiđóch−ơngtrìnhCGIthamkhảocácbiếnmôitr−ờngrồilấydữliệutừ dòngvochuẩnđóđểgiảiquyếtyêucầu.Cònnếutrìnhdiệnyêucầubằng ph−ơngphápGETthìngoiviệcđặtgiátrịchocácbiếnmôitr−ờngthông th−ờng,WebServerđ−adữliệunhậnđ−ợctừng−ờidùngvobiếnmôitr−ờng QUERY_STRING,ch−ơngtrìnhCGIlấydữliệutừđó. Trang49 EbookTeam
  49. www.updatesofts.com Cụthểvớich−ơngtrình ktra.c lch−ơngtrìnhkiểmtratrạngtháiWeb Server,khing−ờidùngnhậpcácthôngtintên,tuổivtrìnhdiệnlênWeb Server,vch−ơngtrìnhsẽnhậnđ−ợcdữliệutừWebServer.Ch−ơngtrình gồmcócácthủtụcsau: •Thủtụcstrcvrtcóchứcnăngchuyểnđổikítựthnhdạngxâu. •ThủtụcTwoHex2IntchuyểnđổimESCAPEthnhkítự. •ThủtụcurlDecodegiảimdữliệu •ThủtụcMainđọcdữliệutừStdinvđ−aradữliệud−ớidạng HTMLchuẩn. Tr−ớctiênch−ơngtrìnhCGIsẽtiếnhnhkiểmtraxemph−ơngthức yêucầucủaClientlph−ơngthứcnobằngcáchđọcdữliệutrongbiếnmôi tr−ờngREQUES_METHODvớidònglệnh: pRequestMethod = getenv("REQUEST_METHOD") ; if (pRequestMethod == NULL || pRequestMethod[0] == '\0') { printf("\nERROR:Request Method error\n") ; goto error ; } if ( strcmp( pRequestMethod, "POST" ) == 0 ) ..... Ngoiviệcđọcbiếnmôitr−ờngREQUEST_METHOD,ch−ơngtrình CGIcòncóthểthamkhảomộtsốbiếnmôitr−ờngkhácnếunóthấycần.Ví dụmuốnbiếtthôngtinvềphầnmềmServerđangsửdụngthìtađọcdữliệutừ biếnmôitr−ờngSERVER_SOFWAREbằngdònglệnh: p = getenv("SERVER_SOFTWARE") ; if ( p != NULL && *p != '\0' ) printf(p) ; else printf(" ") ; Dodữliệuđ−ợcgửilêntheoph−ơngtheoph−ơngthứcPOSTnên ch−ơng trìnhCGIsẽđọcbiếnmôitr−ờngCONTENT_LENGTHđểbiếtđộdidữliệu rồitiếnhnhđọcdữliệutừStandardInputvxửlýdữliệu. Trang50 EbookTeam
  50. www.updatesofts.com p = getenv("CONTENT_LENGTH") ; if ( p != NULL && *p != '\0' ) ContentLengh = atoi(p) ; else ContentLength = 0 ; i = 0 ; while ( i < ContentLength ) { x = fgetc(stdin) ; if ( x == EOF ) break ; InputBuffer[i++] = x ; } Saunhậnđ−ợcdữliệuch−ơngtrìnhCGIsẽtiếnhnhgiảimdữliệuđó (vìmộtsốkýhiệuđặcbiệtđđ−ợcmhoá)bằngthủtục urlDecode ,thủtục đóđ−ợcviếtnh−sau: void urlDecode( char *p ) { char *pD = p ; while (*p) { if ( *p == '%' ) { p++ ; if ( isxdigit(p[0]) && isxdigit(p[1]) ) { *pD++ = (char) TwoHex2Int(p) ; p += 2 ; } } else { *pD++ = *p++ ; } } *pD = '\0' ; } II.2.2 Đ−akếtquảđ−aratừCGIGateway KếtquảtrảvềtừngữtrìnhCGI(gateway)đ−ợcServernhậnvchuyển nóchong−ờigửiyêucầu(WebServer).Khing−ờisửdụnggọiURLcủamột Trang51 EbookTeam
  51. www.updatesofts.com ch−ơngtrìnhCGInođóvgửitớiServerđểtìmfile,nếuServernhậnrađịa chỉđ−ợcyêucầulmộtch−ơngtrìnhCGI,Serversẽkhôngtrảlạitonbộnội dungfilemthayvođónósẽchạych−ơngtrình. CácGatewayCGImuốntạoracáct−liệuthôngtinđểtrảvềchong−ời sử dụng phải thông báocho WebServervềloạithôngtinmnógửicho Serverdạngnh−sau: Content_type:type/subtype TypevSubtypelkiểuMINEchothôngtinmGatewaycầngửi.Nếu cầngửimộttệpdạngvănbản(ASCII)thìtype/submitphảil"text/plain", cònnếucầngửimộtt−liệuHTMLthìtype/subtypephảil"text/html". Trong ch−ơng trình ktra.c do muốn lấy kết quả trả về d−ới dạng HTMLchuẩnnêngửithôngbáochoWebServerbiếtdạngthôngtincầntrả vềchong−ờidùngbằngcách: printf("ContentType:text/html\n\n"); Theodònglệnhny,WebServertựđộngtrảlạikếtquảthựchiệnch−ơng trình ktra.exe d−ớidạngHTMLchuẩn(xemhmmain()củach−ơngtrình ktra.cởphụlục1). CácGatewaycũngkhôngnhấtthiếtphảitrảvềmộtt−liệumnócó thểtrảvềmộtURLtớimộttậptinhaymộtthôngtin khác. Khi đó Web ServersẽdựavoURLnyđểxácđịnhvlấythôngtinhaytệpđórồigửinó choWebBrowser.Đểthựchiệnđ−ợccôngviệcnycácgatewayphảigửicho Serverdòngsauđây: Location:URLaddress II.2.3 Thôngtinkếtquảtừch−ơngtrìnhCGI: Nh−tađbiếtởphầntrên,khichạymộtch−ơngtrìnhCGI,Serverthay vìđ−aravănbảntĩnhsẽđ−arakếtquảcủach−ơngtrình.Tuynhiên,vấnđề Trang52 EbookTeam
  52. www.updatesofts.com lởchỗch−ơngtrìnhCGIphảilmsaotạothôngtinrađểphùhợpnhấtvới Browser. Thôngtinthôngth−ờngnhấtdomộtch−ơngtrìnhCGItạoralmột vănbảnđơngiảnởdạngplaintexthayHTMLđểchoBrowserhiểnthịnh− đốivớicácvănbảnkháctrênWeb.TuynhiênCGIcòncókhảnăngcungcấp cáctiệníchnh−sau: • Trảlạiđồhoạhaycácdữliệunhịphânkhác • ChỉchoBrowserbiếtcócấtvănbảnhaykhông • GửicácmtrạngtháiHTTPđặcbiệttớiBrowser • ChỉchoServergửimộtvănbảncósẵn CáckỹthuậttrênđòihỏicầnphảibiếtthêmđôichútvềcácHeadercủa ch−ơngtrìnhCGI. II.2.4 CácHeaderCGI Headerth−ờngthấynhấtlContenttype,lHTTPheaderchứakiểunội dungMINEmôtảdữliệu.Ngoiracácheaderkháccòncóthểmôtả: • Kíchth−ớcdữliệu • CácvănbảnkhácmServerphảitrảvề • CácmtrạngtháiHTTP Sauđâylmộtsốheaderthôngth−ờng: 1. HeaderContentlength:môtảđộdi(theobytes)luồngdữliệura.Sử dụngdữliệunhịphân. 2. HeaderExpires:Môtảngygiờcủacủacácvănbảnkhôngcòngiátrị vBrowsercầntảilại(reload) 3. HeaderLocation:Địnhh−ớnglạichoServer. 4. HeaderPragma:Chỉđịnhcócấtvănbảnđihaykhông 5. HeaderStatus:Trạngtháicủayêucầu. Trang53 EbookTeam
  53. www.updatesofts.com D−ớiđâysẽtìmhiểusâumộtchútvềcácheadertrên: +AccepttypesvContentTypes Cácch−ơngtrìnhCGIcóthểtrảlạigầnnh−bấtcứdạngvănbảnno mClientcóthểxửlýđ−ợc:vídụnh−filetext,fileHTMLhaycóthểcả Postscript,PDF,SGML v.v..DovậyClientsẽchuyểndanhsáchcáckiểufile nóchấpnhậntớiServerkhiServeryêucầu.Serversẽl−utrữthôngtinnyvo biếnmôitr−ờngHTTP_ACCEPTvch−ơngtrìnhCGIcóthểkiểmtrabiến nyđểbảođảmrằngđtrảvềmộtfilecódạngmBrowsercóthểxửlýđ−ợc. Khi trả về một ti liệu, ch−ơng trình CGI cũng cần phải sử dụng Header ContenttypeđểchỉchoClientbiếtnóđanggửiloạidữliệuno,nh−vậy Browsercóthểđịnhdạngvhiểnthịvănbảnmộtcáchchuẩnxác. +Headercontentlength Headernychỉđịnhkíchth−ớcdữliệuđịnhtruyềnđi.Sửdụngheader nychophéptránhđ−ợccáclỗidữliệutừServerkhiđangxửlýdữliệunhị phânbởiServersẽbiếtđ−ợcsốbytetừluồngdữliệu. +SửdụngHeaderLocationđểđịnhh−ớnglạiServer Ch−ơngtrìnhCGIcóthểlệnhchoServerlấymộtvănbảnđcósẵnv hiểnthịvănbảnđóquátrìnhnygọilđịnhh−ớnglạiServer. Lýdođểng−ờitasửdụngkĩthuậtnylnhằmtrảlạimộtvănbảntính saukhing−ờisửdụngđthựchiệnmộtthaotácnođó.Vídụnh−saukhi họ đ điền vo một Form bạn muốn hiển thị một vi dòng cám ơn. Về nguyêntắcch−ơngtrìnhCGIsaumỗilầngọicóthểtạovhiểnthịMessage đó,nh−nghiệuquảhơnvẫnlgửicáccâulệnhchoServerđểđịnhh−ớnglại vlấymộtfilecóchứaMessagecámơnđó. Đểđịnhh−ớnglạiServer,ng−ờitasửdụngHeaderLocationđểchỉcho ServerbiếtcầnphảichuyểnnhữnggìvServersẽlấyvănbảnđó. +CácheaderExpiresvPragma Trang54 EbookTeam
  54. www.updatesofts.com HầuhếtcácBrowsersẽcấttrongcachevănbảnmtruynhậpnhằmtiếtkiệm tinguyênvìmỗilầntìmvănbảnđóBrowsersẽkhônglấylạivănbảnđó nữa. Tuyvậy,đốivớicácvănbảnảodoch−ơngtrìnhCGItạorathìđâysẽ lmộtđiềuphiềnphứcvìkhiBrowsertruynhậpvomộtch−ơngtrìnhdo CGItạorathôngth−ờngnósẽcấtvănbảnđó.Cáclầnsaukhitruycậpvăn bảnđóthìClientsẽkhôngyêucầuServermsửdụngluônvănbảnđcấtdo vậythôngtincungcấpchong−ờisửdụngcóthểkhôngchínhxácnữavídụ ngythángcótrongvănbảnlạilcủalầntruynhậptr−ớcvdođósẽkhông còngiátrị.Đểhạnchếnh−ợcđiểmđóng−ờitasửdụngcácHeaderExprires vPragmađểchoClientkhôngcấtvănbảnđóđi. +Cácmtrạngthái GiaothứcHTTPsửdụngcácmtrạngtháiđểliênlạcvớitrạngtháicủa cácyêucầuchẳnghạnnếuvănbảncầntruycậpkhôngtồntạithìsẽtrảvề mtrạngthái"404"tớiBrowservnếuvănbảnđbịrờiđinơikhácthìtrả vềm"301". HeaderStatuschỉcácmtrạngtháigồmcó3số,tiếptheolxâuchỉnọi dungmtrạngtháiđó,vídụ: • M200:Truycậpthnhcông • M204:Khôngcótínhiệutrảlời • M301:Vănbảnđbịchuyển • M401:Khôngđ−ợcquyềntruycập • M404:Khôngtìmthấy • M500:LỗibêntrongServer • M501:Khôngsửdụng(notimplemented). Trang55 EbookTeam
  55. www.updatesofts.com ch−ơngiii oracleWebServervxâydựngch−ơng trìnhCGItruynhậpCSDLoracle a.oracleWebServer I KiếntrúccủaOracleWebServer Oracle WebServerbaogồm cácthnhphầnchính nh−sau (thể hiện tronghìnhvẽ(2.1): +WebListener +WebRequestBroker +SercureSocketLayer +WebServerManager +CGIInterface +PL/SQLAgent I.1 WebListener Lmộtgiaothứcmạnhtrongviệcgiảiquyếtyêucầuvđ−aratiliệu siêuph−ơngtiệngửitớiWebBrowser.Nóhỗtrợtấtcảnhữngchuẩnchức năngWebServernh−: +Hệthốngfileảo +DomainNameServices +HỗtrợvềSơđồảnh +HỗtrợvềCGI +Giaothứckếtnốianton +Bảovệfilevphânquyềnchouser Trang56 EbookTeam
  56. www.updatesofts.com I.2 WebRequestBroker: ĐâylphầntrọngtâmcủaWebServerbaogồm: +WRBDispatcher +WRBCartrigger +WRBServices MộtcâuhỏiđồngbộchomộtứngdụngcủaOracleWebServersửdụngđể thựchiệnnhữngứngdụngtrênServer. I.3 SercureSocketsLayer SSLlchuẩnchoantondữliệutrênmạng.Mộtvấnđềcóảnhh−ởng đếnviệckếtgiaothôngtintrênmạngđólmọikếtnốigiữahaimáytínhtrên mạnggiảiquyếtnhiềub−ớctrunggianvớihngloạtmáytínhtừkhitiếp nhậnvquaytrởlạithôngtinmộtcáchthnhcôngchođếnkhitìmđ−ợcđến đích.Tiếntrìnhnyđ−ợcgọil routing lcơsởchủyếuchotonbộviệckết nốimạng,vbấtkỳmáytínhnotrong“chuỗidẫnđ−ờng”honthnhviệc truycậpdữliệu. I.4 QuảntrịWebServer ĐểgiúpđỡviệcquảnlýWebsite,OracleWebServercungcấpmộttập hợptrangWebcóthểsửdụngchúngđểtiếnhnhlmnhiệmvụquảnlýmột cáchcóhiệuquảnhất.Cónhữngtrangđơngiảnlsoạnthảonhữngfilescấu hìnhWebServersửdụng,bạncóthểsửdụngcôngcụkhácđểsọanthảofiles mộtcáchtrựctiếp. I.5 GiaodiệnCGI Mộtcôngnghệchuẩnđ−ợcsửdụngbởiWebListenerthựchiệnmột ch−ơngtrìnhngoinh−( c,perl) sinhraHTMLDoccument. Trang57 EbookTeam
  57. www.updatesofts.com I.6 PL/SQLAgent Đâylch−ơngtrìnhOracleWebServersửdụngđểthựchiệnnhữngthủ tụcđ−ợcviếttrênPL/SQL,ứngdụngcủaOracletrênOracle7Server. OracleWebServer Any Browser Live WebListener Web HTML Oracle7 Navigator Request Java Video PowerBrowser Brocker SS Server explorer L PL/SQ L Context WRB*API Server File CGI Static Perl File Hình2.1KiếntrúcOracleWebServer II NguyêntắchoạtđộngcủaOracleWebServer Oracle WebServer l một HTTP với một cơ sở dữ liệu không định tr−ớc.KhiWebServertiếpnhậnmộtURLtừBrowsertrên WWW hoặc từ mạngcụcbộsửdụnggiaothứcWeb,nóchứađựngthôngtintừcơsởdữliệu hayfilehệthốngcầnthiếtđểtrảlờiyêucầu.HệthốngfilesửdụngStatic Webpages,haychoCGIScript.CơsởdữliệusửdụngchotrangWebsinhra một“live”data.ServerWebListenerchấpnhậnmộtURLtừWebBrowserv gửirangoikhiWebListenertiếpnhậnURL.Weblistenerxácđịnhcâuhỏi vsửdụngnhữngdịchvụtruycậpthôngquaWRB(WebRequestBrocker) Trang58 EbookTeam
  58. www.updatesofts.com mộtch−ơngtrìnhđ−ợctruycậpbằngCGIInterfacehaytruycậpthôngqua filehệthốngcủacôngnghệtrênListener. KhiWebBrowsergửiyêucầud−ớidạngURLtớiWebListener,Web ListenersẽtiếpnhậnphântíchURLvxácđịnhdịchvụthựchiệnyêucầu hoặcthôngquaWRB.Nếuyêucầumộttiliệutĩnhthìtiliệuđósẽđ−ợclấy từhệthốngfiles.NếuyêucầulginhchomộtứngdụngcủaCGIthìtiến trìnhCGIsẽhoạtđộng.NếuWebListenerkhôngđápứngđ−ợcyêucầuthìsẽ gửiquaWRBsauđóWRBsẽgửiyêucầuđótớiCartridger nh− PL/SQL, Java,LiveHTML.NếuWRBtruycậpngoithìListenersẽthôngquacâuhỏi choWRBDispatcherchomộttiếntrình,sauđóquaytrởlạigiảiquyếtnhiệm vụ. WRBDischapertựthựchiệnyêucầuvớisựgiúpđỡcủamột“xích” (pool)củatiếntrìnhđ−ợcgọiđólđ−ợcgọilWRB Executable Engines (WRBXs).MộtgiaodiệnkhácWRBXlquaytrởlạisửdụngứngdụngWRB API.Cónhữngứngdụngđ−ợcgọilWRBcartridges. WRB APIđđ−ợc thiết kế . Sự kết hợp giữa một Cartridges v WRB API tạo ra một WRB Service.Thôngth−ờngthìcó3loạidịchvụmOracleWebServerhỗtrợl: • PL/SQLCartridges:ThựchiệncácthủtụcPL/SQLsinhmHTMLđồng thờisửdụngOracleData. • Javacartridges:ThựchiệnJavatrênServer. • LiveHTML:HiệnraWebpage.Webpageđ−ợcthựchiệnbởiHệđiều hnh. Trang59 EbookTeam
  59. www.updatesofts.com 2 Web 1 3 Browse Listener WRB Pl/sql Java 6 5 4 Hình2.2OracleWebServerWork . Giảithíchhình2.2 1. WebBrowserđ−arayêucầuURLchoWebListener 2. WebListenergửiyêucầutớiWRB 3. NếuPL/SQLđ−ợcchọnthìsẽmócnốivocơsởdữliệu 4. ThủtụcPL/SQLsẽsinhtiliệuHTML 5. PL/SQLAgentthôngquatiliệuHTMLtớiWebListener 6. WebListenergửitiliệuHTMLtớiBrowser II.1 TheWebListener(OWL) Oracle Web Listener l một giao thức truyền thông HTTP. Web ListenercónhiệmvụtiếpnhậnyêucầutừWebBrowsergửiđếnWRBvsau đólạinhậnkếtquảđểgửitrảchoBrowser.Chophépxửlýđồngthờinhiều câuhỏitrongcùngthờigianthôngquachuẩnHTTPhayHTTPtrênSSL.Web ListenervWebClientkếtnốivớinhauthôngquagiaothứcHTTP.(Hìnhvẽ 2.3) Trang60 EbookTeam
  60. www.updatesofts.com OracleWebServer FileSystem HTTPRequest (URLs) Oracle Static Web Web TraditionalStatic Doccument Browser Listener Pages CGI FileAccess HTM Interface L Hình2.3OracleWebListener MỗitiếntrìnhOracleWebListennerđềuchấpnhậnkếtnốinhiềuWeb BrowsertrênmộthaynhiềuđịachỉIP/hoặccổngkếthợpsửdụngHTTPđể giảimyêucầutừsiêuvănbảnvgiaothứcđiềukhiểntruyềnthôngTCP/IP (TransmissionControlProtocol)/giaothứcInternet(InternetProtocol)đ−ợc sửdụngnh−mộtgiaothứckếtnốilớpd−ới.MộtsốtiếntrìnhWebListener cóthểchạytrênmộtmáyvocùngmộtthờiđiểm. Thôngth−ờngkhiWebListenermởmộtfileđđ−ợcyêucầu,Filesẽmởv ánhxạvobộnhớtrongchođếnkhiClientssửdụngxongvkếtthúcnó. WebListenersẽđóngfilevgiảiphóngmemorymappingkếtnốivớinó. WebListenerchophépxácđịnhrõcácfileởtrong cache. Cachedfilesẽmở khiclientyêucầuchúng. Vềvấnđềantondữliệu,OracleWebListenerchophéptạofileảo hayth−mụcảobởi AuthenticationScheme hay RestrictionScheme đểbảo vệchúng. II.1.1 AuthenticationScheme Khi một file hay một th− mục đ−ợc bảo vệ bởi Authentication Scheme , một Client có nhu cầu truy cập thì phải cung cấp Username v Trang61 EbookTeam
  61. www.updatesofts.com Password.VậythìAuthenticationSchemechophéptạotêncủang−ờidùng (nhómng−ờidùng)vPasswordcủahọ. WebListenerhỗtrợhaiAuthenticationSchemeđól: BasisAuthentication v Digest Authentication. Cả hai l−ợc đồ đều chính xác, Digest Authentication thìgửipasswordtừClientđếnServerd−ớidạngmhoáđ−ợc gọil Digest ng−ợcvới BasisAuthentication thìgửipasswordkhônghềm hoánh−vậyđộantonsẽbịgiảmđángkể. MộtviWebbrowserkhônghỗtrợ DigestAuthentication ,nh−ngcácfilev th−mụcđòihỏiAuthentication,vìvậynênsửdụngdigestauthenticationbất cứkhinocóthể. II.1.2 RestrictionScheme Tr−ờnghợpmột filehaymộtth−mụcđ−ợcbảovệbởi Restriction Scheme,thìchỉClientđangtruycậpWebListenertừmộtnhómantonmới cóthểtruycậpnó.Cóhai RestrictionScheme mWebListenerhỗtrợđól IPbasedrestriction v Domainbasedrestriction. +IPbasedrestriction: Chophépđịnhnghĩanhómantonđ−ợcđánhdấu bởiIPaddress. +Domainbasedrestriction: Ng−ợcvớiIPbasedrestriction,chophépđịnh nghĩanhómantonbởiDNShosthayDomainname. NgoivấnđềantonOracleWeblistenercònhỗtrợnhữngdịchvụkhácnh− chúngcóthểduytrìmộtvikiểucủatiliệuởnhữngdạngkhácnhauv cungcấpchoClientnhữngdạngmchúngyêucầu. VídụnếuClientyêucầutiliệubằngtiếngPháp,WebListenersẽkiểmtra xemcóVersiontiếngPhápkhông,nếucósẽgửitrảkếtquảchoClient,ng−ợc lạinếukhôngcósẽtrảkếtquảngầmđịnh,thôngth−ờngltiếngAnh. Trang62 EbookTeam