Tim Hieu Asp 16t

  • October 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Tim Hieu Asp 16t as PDF for free.

More details

  • Words: 3,127
  • Pages: 16
1 I. Tìm hieåu veà coâng ngheä ASP(Active server Page): 1. Khaùi nieäm: ASP laø moät ngoân ngöõ kòch baûn duøng ñeå xaây döïng caùc öùng duïng treân moâi tröôøng internet. Nhö teân goïi cuûa noù, ASP giuùp ngöôøi xaây döïng öùng duïng web taïo ra caùc trang web coù noäi dung linh hoaït. Vôùi caùc ngöôøi duøng khaùc nhau khi truy caäp vaøo nhöõng trang web naøy coù theå seõ nhaän ñöôïc caùc keát quaû khaùc nhau. Nhôø nhöõng ñoái töôïng coù saün(Built_in Object) vaø khaû naêng hoå trôï caùc ngoân ngöõ script nhö VBScript vaø Jscript, ASP giuùp ngöôøi xaây döïng öùng duïng deã daøng vaø nhanh choùng taïo ra caùc trang web chaát löôïng. Nhöõng tính naêng treân giuùp ngöôøi phaùt trieån öùng duïng nhanh choùng tieáp caän ngoân ngöõ môùi, ñieàu naøy laø moät öu ñieåm khoâng nhoû cuûa ASP. 2. Caáu truùc cuûa moät trang ASP: Trang ASP ñôn giaûn laø moät trang vaên baûn vôùi phaàn môû roäng laø.asp, goàm coù 3 phaàn : • Vaên baûn (Text) • HTML tag (HTML : Hypertext Markup Language) • Caùc ñoaïn script asp Khi theâm 1 ñoaïn script vaøo HTML , ASP duøng daáu phaân caùch (delimiters) ñeå phaân bieät giöõa ñoaïn HTML vaø ñoaïn ASP. <% baét ñaàu ñoaïn script vaø %> ñeå keát thuùc ñoaïn script. Coù theå xem trang ASP nhö moät trang HTML coù boå sung caùc ASP Script Command

2 Xem ví duï döôùi ñaây: Baïn baét ñaàu vôùi trang ASP naøy ngaøy :<%=Now%> 3. Moâ hình öùng duïng web qua coâng ngheä ASP Thao taùc giöõa client vaø server trong moät öùng duïng web coù theå ñöôïc theå hieän khaùi quaùt nhö sau:

Trình duyeät WEB

HTTP

ASP

A D

O LE D B

O

O D B C

DBMS SQL Server

Client Web Server

DB Server

Moâ hình öùng duïng Web theå hieän qua coâng ngheä ASP 4. Hoaït ñoäng cuûa moät trang ASP: Khi moät trang ASP ñöôïc yeâu caàu bôûi web browser, web server seõ duyeät tuaàn töï trang ASP naøy vaø chæ dòch caùc script ASP. Tuøy theo ngöôøi xaây döïng trang web naøy quy ñònh maø keát quaû do web server dòch seõ traû veà laàn löôït cho trình duyeät cuûa ngöôøi duøng hay laø chæ traû veà khi dòch xong taát caû caùc script. Keát quaû traû veà naøy maëc ñònh laø moät trang theo caáu truùc cuûa ngoân ngöõ HTML

3 5. Öu ñieåm vaø khuyeát ñieåm ASP: Öu ñieåm :  ASP boå sung cho caùc coâng ngheä ñaõ coù töø tröôùc nhö CGI (Common Gateway Interface), Giuùp ngöôøi duøng xaây duïng caùc öùng duïng web vôùi nhöõng tính naêng sinh ñoäng. Tuy nhieân, khaùc vôùi CGI, caùc trang ASP khoâng caàn phaûi hôïp dòch.  Deã daøng töông thích vôùi caùc coâng ngheä cuûa MicroSoft. ASP söû duïng ActiveX Data Object (ADO) ñeå thao taùc vôùi cô sôû döõ lieäu heát söùc tieän lôïi.  Vôùi nhöõng gì ASP cung caáp, caùc nhaø phaùt trieån öùng duïng web deã daøng tieáp caän coâng ngheä naøy vaø nhanh choùng taïo ra caùc saûn phaåm coù giaù trò. Ñieàu naøy heát söùc coù yù nghóa trong ñieàu kieän phaùt trieån nhö vuõ baûo cuûa tin hoïc ngaøy nay. Noù goùp phaàn taïo neân moät ñoäi nguõ laäp trình web lôùn maïnh.  ASP coù tính naêng môû. Noù cho pheùp caùc nhaø laäp trình xaây döïng caùc component vaø ñaêng kyù söû duïng deã daøng. Hay noùi caùch khaùc ASP coù tính naêng COM(Component Object Model) Khuyeát ñieåm :  ASP chæ chaïy vaøtöông thích treân moâi tröôøng Window ñieàu naøy laøm ASP bò haïn cheá raát nhieàu.  Duøng ASP chuùng ta seõ gaëp khoâng ít khoù khaên trong vieäc can thieäp saâu vaøo heä thoáng nhö caùc öùng duïng CGI.  ASP khoâng ñöôïc söï hoå trôï nhieàu töø caùc haõng thöù ba.  Caùc öùng duïng ASP chaïy chaäm hôn coâng ngheä Java Servlet.  Tính baûo maät thaáp. Khoâng gioáng nhö CGI hay Java servlet, caùc maõ ASP ñeàu coù theå ñoïc ñöôïc neáu ngöôøi duøng coù quyeàn truy caäp vaøo web

server. Coù leõ ñaây laø lyù do quan troïng nhaát ñeå ngöôøi duøng khoâng

4

choïn coâng ngheä ASP. II. Caùc ñoái töôïng Built-in trong ASP 1. Application Object Ñoái töôïng Application duøng chia seû thoâng tin cho moïi ngöôøi duøng. Bôûi vì thoâng tin trong ñoái töôïng application ñöôïc duøng chung cho moïi ngöôøi duøng neân noù caàn moät phöông thöùc ñeå baûo ñaûm tính thoáng nhaát cuûa döõ lieäu. Cuù phaùp : Application.Method  Nhöõng vaán ñeà caàn quan taâm khi söû duïng ñoái töôïng application: • Contents: Chöùa taát caû nhöõng item maø chuùng ta thieát laäp trong ñoái töôïng application maø khoâng duøng tag . Cuù Phaùp : Application.Contents( Key ) Key : teân cuûa property caàn nhaän veà Ví duï: Baïn coù theå duøng voøng laëp ñeå nhaän taát caû item trong application <%

%>

Dim AppItem For Each AppItem in Application.Contents Response.write(ApplicationItem & " : " & Application.Contents(AppItem) & "
") Next

5

• Lock: phöông thöùc lock ngaên chaën caùc client khaùc thay ñoåi giaù trò cuûa

bieán duøng chung trong ñoái töôïng applicaton. Neáu phöông thöùc

UnLock khoâng ñöôïc goïi thì server töï ñoäng thöïc hieän leänh naøy khi xöû lyù xong caùc script hoaëc time out. Cuù phaùp:

Application.Lock

• UnLock: phöông thöùc UnLock cho pheùp client thay ñoåi giaù trò cuûa caùc bieán löu trong ñoái töôïng application ñaõ bò lock tröôùc kia. Cuù phaùp:

Application.UnLock

<% Application.Lock Application("NumVisits") = Application("NumVisits") + 1 Application.Unlock %> • Application_OnStart: söï kieän naøy xaûy ra khi tröôùc khi session ñaàu tieân ñöôïc taïo, nghóa laø noù xaûy ra tröôùc söï kieän Sesion_OnStart. Trong söï kieän naøy chæ toàn taïi ñoái töôïng application vaø session. • Application_OnEnd: söï kieän Application_OnEnd xuaát hieän khi thoaùt öùng duïng. Noù xaûy ra sau söï kieän Session_OnEnd. Trong söï kieän naøy chæ toàn taïi ñoái töôïng application vaø session. Caû phöông thöùc Application_OnStart vaø Application_OnEnd phaûi ñöôïc ñaët trong taäp tin Global.asa

6 Cuù phaùp : <SCRIPT LANGUAGE=ScriptLanguage RUNAT=Server> Sub Session_OnEnd ... End Sub Sub Session_OnStart ... End Sub 2. Session Session laø ñoái töôïng ñöôïc web server töï ñoäng taïo khi moät trang web ñaàu tieân trong öùng duïng ñöôïc ngöôøi duøng goïi. Session raát tieän lôïi cho ngöôøi phaùt trieån öùng duïng web trong vieäc löu laïi thoâng tin cuûa caùc ngöôøi duøng. Ñoái töôïng session seõ toàn taïi cho ñeán khi session bò huûy hoaëc heát hieäu löïc(time out). Khi muoán löu item trong ñoái töôïng session thì phaûi yeâu caàu ngöôøi duøng cho pheùp löu cookies(enable cookies) trong trình duyeät web. Cuù phaùp : Session.collection | property | method Nhöõng vaán ñeà caàn quan taâm khi söû duïng ñoái töôïng session: • Contents: Chöùa taát caû nhöõng item maø chuùng ta thieát laäp cho ñoái töôïng session maø khoâng duøng tag . Cuù Phaùp : Session.Contents( Key ) Key : teân cuûa property caàn nhaän veà Ví duï: Baïn coù theå duøng voøng laëp ñeå nhaän taát caû item trong Session <%

Dim sessionItem

For Each sessionItem in Session.Contents Response.write(sessionItem & " : " &

Session.Contents(sessionItem) & "
")

7

Next %> • SessionID: Laø moät con soá kieåu long ñöôïc phaùt sinh bôûi web server khi session ñöôïc taïo. Moãi ngöôøi duøng seõ coù moät sessionID khoâng gioáng nhau. Khi web server bò stop vaø start trôû laïi thì nhöõng sessionID do web server phaùt sinh laàn sau coù theå seõ truøng vôùi laàn tröôùc ñoù. Do ñoù chuùng ta khoâng theå duøng ID ñeå taïo khoùa chính cho moät öùng duïng cô sôû döõ lieäu. Cuù phaùp:

Session.SessionID

• Timeout: Thôøi gian maø ñoái töôïng Session coøn toàn taïi. Giaù trò naøy ñöôïc tính baèng phuùt . Neáu ngöôøi duøng khoâng refresh hoaëc yeâu caàu moät trang web cuûa öùng duïng trong khoaûng thôøi gian lôùn hôn thôøi gian timeout thì session seõ keát thuùc. Giaù trò maëc ñònh laø 20 phuùt Cuù phaùp:

Session.Timeout [ = nMinutes]

• Abandon: Duøng ñeå huûy ñoái töôïng Session vaø giaûi phoùng taøi nguyeân. Web server seõ töï thöïc hieän phöông thöùc naøy khi session heát hieäu löïc(time out). Khi abandon ñöôïc goïi, nhöõng ñoái töôïng chöùa trong session hieän haønh seõ ñöôïc saép trong moät haøng ñôïi chôø xoùa. Server seõ xöû lyù taát caû caùc script vaø sau ñoù xoùa caùc doái töôïng trong haøng ñôïi naøy. Cuù phaùp: Session.Abandon Ví duï: <% Se sesion.Abandon Session("MyName") = "Mary" Reponse.Write(Session("MyName")) %>

ÔÛ trang naøy thì bieán Myname vaãn coøn toàn taïi vaø seõ bò huûy khi caùc leänh

8

script thöïc hieän xong.

• Session_OnStart: söï kieän naøy xaûy ra khi server taïo moät Session. Server söû lyù script naøy khi thöïc thi yeâu caàu moät trang. Sesion_OnStart laø nôi thuaän lôïi cho baïn thieát laäp caùc bieán bôûi vì noù seõ ñöôïc goïi tröôùc khi moät trang ñöôïc thöïc thi. Caùc ñoái töôïng built_ in toàn taïi trong söï kieän naøy laø: Application, ObjectContext, Request, Response, Server vaø Session • Session_OnEnd: söï kieän naøy xaûy ra khi session bò huûy bôûi leänh Abandom hoaëc timeout. Trong söï kieän naøy chæ coù caùc ñoái töôïng built_in: Application, Server, Session cuûa ASP laø toàn taïi. Caû phöông thöùc Session_OnStart vaø Session_OnEnd phaûi ñöôïc ñaët trong taäp tin Global.asa Cuù phaùp : <SCRIPT LANGUAGE=ScriptLanguage RUNAT=Server> Sub Session_OnEnd ... End Sub Sub Session_OnStart ... End Sub 3. ObjectContext Object Ñoái töôïng naøy ñöôïc söû duïng cho caùc thao taùc transaction. ObjectContext ñöôïc ñieàu khieån bôûi phaàn meàm quaûn lyù giao taùc Microsoft Transaction Server (MTS). Khi moät trang ASP chöùa chæ thò @TRANSACTION, trang naøy seõ ñöôïc thöïc hieän trong moät transaction vaø chæ chaám döùt xöû lyù khi taát caû caùc giao taùc thöïc hieän xong. Cuù phaùp: ObjectContext.Method Method:

9 • SetComplete: Neáu taát caû thaønh phaàn coù trong transaction goïi phöông thöùc naøy thì transaction seõ ñöôïc keát thuùc. Phöông thöùc SetComplete boû qua baát kyø leänh SetAbort ñaõ ñöôïc goïi tröôùc ño Cuù phaùp: ObjectContext.SetComplete • SetAbort: Phöông thöùc naøy khai baùo taát caû caùc thao taùc ñöôïc thöïc hieän trong transaction seõ khoâng ñöôïc hoaøn thaønh vaø taøinguyeân coù theå seõ khoâng ñöôïc caäp nhaät. Cuù phaùp: ObjectContext.SetAbort • OnTransactionCommit: söï kieän naøy xaûy ra sau khi taát caû caùc script giao taùc keát thuùc. web server(IIS) seû xöû lyù haøm OnTransactionCommit neáu noù toàn taïi. • OnTransactionAbort: Töông töï nhö söï kieän OnTransactionCommit 3. Request Object Ñoái töôïng Request nhaän taát caû giaù trò maø trình duyeät cuûa cuûa client gôûi ñeán server thoâng qua moät yeâu caàu HTTP (HTTP request) Cuù phaùp: Request[.collection|property|method](variable)  Nhöõng vaán ñeà caàn quan taâm khi söû duïng ñoái töôïng Request: • ClientCertificate: collection naøy ñöôïc

löu

trong tröôøng

client

certificate vaø gôûi keøm trong moät HTTP request. Neáu web browser duøng nghi thöùc SSL3.0 ñeå keát noái vôùi server vaø server yeâu caàu

certificate

thì

browser

môùi

gôûi

tröôøng

naøy,

ngöôïc

laïi

10

ClientCertificate traû veà giaù trò EMPTY. Neáu muoán duøng collection naøy chuùng ta phaûi caáu hình web server yeâu caàu client certificate. Cuù phaùp: Request.ClientCertificate( Key[SubField] ) • Cookies: laø moät collection ñöôïc löu treân maùy cuûa client nhö moät taäp tin nhoû. Cookies ñöôïc trình duyeät cuûa client gôûi keøm trong HTTP request. Cuù phaùp: Request.Cookies(cookie)[(key)|.attribute] Giaûi thích ñoái soá: -

cookie: Chæ ñònh cookie ñeå nhaän giaù trò

-

key: Tham soá tuøy choïn duøng ñeå nhaän caùc item coù trong cookie

-

attribute: Chæ ñònh thoâng tin veà baûn thaân cookie. Tham soá thuocä tính naøy coù theå laø Name hay HasKeys

Chuùng

ta coù theå truy caäp ñeán caùc item con(subkeys) cuûa cookie

(cookie dictionary)thoâng qua teân cuûa item. Neáu truy caäp cookie maø khoâng chæ ñònh item thì taát caû caùc item seõ ñöôïc traû veà trong moät chuoãi. Ví duï MyCookie coù 2 khoùa, First vaø second, khi goïi request.Cookies chuùng ta seõ nhaän ñöôïc keát quaû laø First=firstkeyvalue&Second=secondkeyvalue Neáu hai cookie truøng teân ñöôïc trình duyeät cuûa client gôûi cho server thì caâu leänh Request.Cookies seõ traû veø cookie coù caáu truùc saâu hôn. Ví duï, neáu hai cookie truøng teân nhöng coù ñöôøng daãn laø /www/ vaø /www/home/, client coù theå gôûi caû hai cookie naøy cho server nhöng leänh Request.Cookies seõ chæ traû veà cookie thöù 2.

Ñeå bieát ñöôïc cookie coù item khoâng ta duøng leänh script laø:

11

<% Request.Cookies("myCookie").HasKeys %> keát quaû traû veà laø moät soá boolean. Ví duï sau ghi ra taát caû caùc item coù trong cookie coù teân laø MyCookie. <% If Request.Cookies(“MyCookie”).Haskeys Then For Each key In Request.Cookies Response.Write item &”=” Response.Write Request.Cookies(“MyCookie”)(key) & “
” Next End If %> • Form: collection naøy nhaän giaù trò cuûa nhöõng thaønh phaàn trong form ñöôïc gôûi baèng phöông thöùc POST thoâng qua moät HTTP request. Cuù phaùp: Request.Form(element)[(index)|.Count] -

Element: Teân cuûa moät thaønh phaàn trong form

-

index: Tham soá tuøy choïn cho pheùp chuùng ta truy caäp moät trong soá caùc giaù trò cuûa moät parameter. Noù coù theå töø 1 ñeán Request.Form(parameter).Count

Form collection ñöôïc chæ muïc theo teân cuûa caùc parameter trong request. Chuùng ta coù theå bieát coù bao nhieâu parameter trong form collection baèng caùch goïi Request.Form().Count. Ví duï: trang HTML nhö sau:

12

Your first name:
What is your favorite ice cream flavor: <SELECT NAME = "flavor">
Trang submit.asp coù noäi dung nhö sau: Welcome: <%=Request.Form(“firstname”)%> Your favorite flavor is <%=Request.Form("flavor") %>

• QueryString: Collection naøy nhaän taát caû caùc giaù trò trong chuoãi query. HTTP query string ñöôïc chæ ñònh bôûi nhöõng giaù trò theo sau daáu

“?” trong caâu leänh request. Chuùng ta coù theå söû duïng

collection querrystring töông töï nhö collection form.

Cuù phaùp:

13

Request.QueryString(Teân bieán)[(chæ muïc)].Count • ServerVariables: chöùa taát caû caùc thoâng tin veà bieán moâi tröôøng. 4. Response Object: Khaùc vôùi ñoái töôïng Request, Response gôûi taát caû thoâng tin xöû vöøa xöû lyù cho caùc client yeâu caàu. Chuùng ta coù theå xöû duïng ñoái töôïng naøy ñeå giao tieáp vôùi ngöôøi duøng. Cuù phaùp: Response.collection|property|method  Nhöõng vaán ñeà caàn quan taâm khi söû duïng ñoái töôïng Request: • Cookies: collection naøy duøng ñeå thieát laäp giaù trò cho bieán cookies. Neáu cookies khoâng toàn taïi thì web server seõ taïo moät cookies môùi treân maùy client. Ngöôïc laïi, giaù trò cuûa cookies laø giaù trò môùi thieát laäp. Moät löu yù khi söû duïng cookies laø giaù trò cookies phaûi laø nhöõng thoâng tin ñöôïc gôûi veà ñaàu tieân cho trình duyeät cuûa client. Cuù phaùp: Response.Cookies(cookie)[(key)|.attribute] = value -

Cookie: teân cuûa cookies muoán taïo.

-

Key: laø tham soá tuøy choïn. Neáu giaù trò naøy ñöôïc thieát laáp thì cookies naøy ñöôïc xem laø cookies töø ñieån.

-

Attribute: Bao goàm nhöõng thoâng tin lieân quan ñeán cookies:

-

Domain: thuoäc tính chæ ghi, cho bieát domain taïo cookies naøy.

-

Expires: thuoäc tính chæ ghi, qui ñònh ngaøy cookies heát haïn. Neáu khoâng qui ñònh thuoäc tính naøy thì cookies seõ heát haïn khi session keát thuùc.

-

Haskeys: thuoäc tính chæ ñoïc, cho bieát cookies coù chöùa item hay khoâng.

14 -

Path: thuoäc tính chæ ghi, neáu giaù trò naøy ñöôïc chæ ñònh thì client chæ gôûi cookies cho server coù ñöôøng daãn naøy.

-

Secure: thuoäc tính chæ ghi, qui ñònh giaù trò naøy khi muoán cookies ñöôïc baûo maät.

• Buffer: laø moät bieán kieåu boolean. Neáu thuoäc tính naøy laø true thì web server chæ traû keát quaû cho client khi taát caû caùc script ñöôïc xöû lyù hoaëc phöông thöùc Flush hay End ñöôïc goïi. Giaù trò maëc ñònh laø False. Cuù phaùp: Response.Buffer = [True, false] • CacheControl: qui ñònh proxy server coù ñöôïc löu keát quaû do trang ASP naøy phaùt sinh hay khoâng. Giaù trò maëc ñònh laø khoâng(private). • ContentType: qui ñònh daïng döõ lieäu do web server traû veà cho client. Giaù trò maëc ñònh laø text/HTML. Cuù phaùp: Response.ContentType [= ContentType ] Ví duï: <% Response.ContentType = "image/GIF" %> • Expires: chæ ñònh thôøi gian Cookies trang löu treân trình duyeät cuûa client. Cuù phaùp:

Response.Expires =[minuter]

• IssClientConnected: kieåm tra client coøn keát noái vôùi server. Cuù phaùp: Response.IsClientConnected • BinaryWrite: phöông thöùc naøy tieän lôïi cho vieäc truyeàn nhöõng thoâng tin kieåu nhò phaân cho client. Cuù phaùp: Response.write data Data: döõ lieäu muoán truyeàn cho client.

15 • Clear: xoùa taát caû döõ lieäu chöùa trong vuøng ñeäm. Muoán duøng phöông thöùc naøy phaûi chæ ñònh giaù trò Response.Buffer = TRUE. Cuù phaùp: Response.clear • End: Khi goïi phöông thöùc naøy, server döøng xöû lyù caùc script vaø traû veà cho client caùc keát quaû ñaõ thöïc hieän ñöôïc. Muoán duøng phöông thöùc naøy phaûi chæ ñònh giaù trò Response.Buffer = TRUE. Cuù phaùp: Response.End • Flush: gôûi taát caû döõ lieäu trong vuøng ñeäm cho client. Muoán duøng phöông thöùc naøy phaûi chæ ñònh giaù trò Response.Buffer = TRUE. Cuù phaùp: Response.Flush • Redirect: chuyeån höôùng trình duyeät cuûa client ñeán moät ñòa chæ URL khaùc Cuù phaùp: Response.Redirect URL • Write: ghi thoâng tin cho client. Cuù phaùp: Response.write data 5. Server object: Ñoái töôïng Server cung caáp caùc phöông thöùc vaø thuoäc tính duøng cho truy caäp server. Cuù phaùp:

Server.property|method

 Nhöõng vaán ñeà caàn quan taâm khi söû duïng ñoái töôïng server: • ScriptTimeout: thuoäc tính trò qui ñònh thôøi gian lôùn nhaát maø caùc leänh script coøn ñöôïc thöïc hieän. Giaù trò maëc ñònh laø 90 giaây. Giaù trò timeout seø khoâng hieäu löïc khi server thöïc hieän caùc script. Cuù phaùp:

Server.ScriptTimeout = NumSeconds

NumSeconds: Thôøi gian toái ña maø script heát hieäu löïc.

16

• CreateObject: Phöông thöùc CreateObject taïo moät instance cuûa moät server component. Nhöõng ñoái töôïng ñöôïc taïo bôûi phöông thöùc naøy seõ server giaûi phoùng khi server thöïc hieän xong caùc script. Phöông thöùc naøy khoâng duøng ñeå taïo caùc ñoái töôïng built_in cuûa ASP. Cuù phaùp: Server.CreateObject(progID) progID : kieåu ñoái töôïng muoán taïo. •

HTMLEncode: Phöông thöùc naøy ñöôïc duøng ñeå maõ hoùa moät chuoãi. Cuù phaùp: Server.HTMLEncode (string) Ví duï: <%= Server.HTMLEncode("The paragraph tag:

") %> Chuoãi sau khi thöïc hieän ñoaïn script treân: The paragraph tag: <P>



MapPath: phöông thöùc naøy cho bieát thoâng tin veà ñöôøng daãn vaät lyù cuûa moät thö muïc aûo treân web server. Cuù phaùp: Server.MapPath (Path)


Related Documents

Tim Hieu Asp 16t
October 2019 11
Thi Tim Hieu
June 2020 7
Tim Hieu Cnpm
June 2020 9
Tim Hieu Ftp
November 2019 15
Tim Hieu Ve Firewall
October 2019 20
1.tim Hieu Firefox
May 2020 1