You are on page 1of 7

Dng Thin T

Hutech - 2008

Bi 6: HTTP FTP SMTP POP3


I. HyperText Transfer Protocol (HTTP port 80) 1. Khi nim - HTTP (Hypertext Transfer Protocol) da trn nn TCP, l giao thc cp ng dng ch yu dng truyn ti cc tp tin siu vn bn (web, dng ngn ng HTML), hnh thnh nn hot ng ch yu ca mng World Wide Web hin ti. M t trong RFC 1945 (HTTP 1.0) v RFC 2616 (HTTP 1.1). - HTTP l mt giao thc client-server cho php hai h thng lin lc vi nhau trn mt kt ni TCP/IP. Lin lc HTTP Client/Server c th: + Trc tip (basic): client gi yu cu di dng chun HTTP Request, ch nh ti nguyn client mun nhn; server lng nghe ti port ch nh, nhn yu cu t HTTP Request v to p ng di dng chun HTTP Response. + Thng qua trung gian (Intermediate HTTP Systems): to thnh chui cc HTTP Request/Response Proxy: tng cng p ng nh chc nng lu tr (cache).
proxy
HTTP request Intermediar y HTTP request HTTP request over authenticated connection

Gateway: mc ch bo mt, dng ti firewall.

Intermediar y

2. Thng ip HTTP Request - Client bt u mt HTTP session bng cch m mt kt ni TCP n HTTP server mun lin lc. Sau client gi cc thng ip HTTP Request (yu cu) n server, mi thng ip c kiu c th ty theo cng vic client mun server thc hin. Cc request c th sinh t mt hnh ng ca ngi dng (nh click vo mt hyperlink) hoc gin tip t kt qu ca hnh ng trc (nh yu cu mt ti liu c nh ly t a ch khc). Cu trc ca HTTP Request nh sau:
GET /index.html HTTP/1.1 Date: Thu, 20 May 2007 21:12:55 GMT Connection: close Host: www.myfavoriteamazingsite.com From: joebloe@somewebsitesomewhere.com Accept: text/html, text/plain User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) Request Line General Headers

gatewa y

1. HTTP request 2. HTTP request that must be filtered

1. non-HTTP request 2. authenticated HTTP request

Request Headers

HTTP Request

Entity Headers Message Body

- Request Line: c 3 mc ch: ch nh lnh hoc cng vic m client mun thc hin, ch nh ti nguyn hnh ng s x dng, ch nh version HTTP client dng. C php: <METHOD> <request-uri> <HTTP-VERSION> + Method: l kiu hnh ng client mun server thc hin, lun ch nh bng ch hoa. C 8 method chun nh ngha trong HTTP/1.1:
Lnh GET HEAD POST PUT DELETE OPTION TRACE CONNECT M t Yu cu server tr v ni dung ch nh. Yu cu header. Yu cu x l thng tin trong entity vi chng trnh ti URL ch nh. Yu cu server lu entity trong phn thn ti URL ch nh. Yu cu xa ti nguyn ch nh. Yu cu thng tin v HTTP h tr trn web server. Cho php client nhn ngc bn sao request. dnh cho tng lai.

+ Request URI: ch nh ng dn v tn tp tin yu cu. + HTTP version: phin bn HTTP client dng, server bit cch phin dch request t client. - Header:
1

Dng Thin T

Hutech - 2008

+ General Headers: thng tin tham kho chung, dng x l request hoc cung cp thm thng tin cho bn nhn. + Request Headers: thng tin chi tit v bn cht ca request. + Entity Headers: m t cc thc th cha trong phn thn request nu c. 3. Thng ip HTTP Response - Ging nh HTTP request, HTTP Response to trn nh dng chung ca thng ip HTTP. Cu trc ca HTTP Response nh sau:
HTTP/1.1 200 OK Date: Thu, 20 May 2007 21:12:58 GMT Connection: close Server: Apache/1.3.27 Accept-Ranges: bytes Content-Type: text/html Content-Length: 170 Last-Modified: Tue, 18 May 2007 10:14:49 GMT <html> <head> <title>Welcome to the Amazing Site!</title> </head> <body> <p>This site is under construction. Please come back later. Sorry!</p> </body> </html> Status Line General Headers Response Headers Entity Headers HTTP Response

Message Body

- Status Line: c 2 chc nng: bo cho client phin bn giao thc server ang dng, thng bo kt qu x l request t client. C php: <HTTP-VERSION> <status-code> <reason-phrase> + Status Code v Reason Phrase: cung cp thng tin v kt qu x l request t client theo 2 cch khc nhau: m trng thi 3 s v chui vn bn m t. Mt s m trng thi:
M tr v 1xx 2xx 3xx 301 302 4xx 400 401 403 404 5xx 500 502 Thng ip nhn request, tip tc x l Thnh cng Chuyn tip (Redirection) Ti nguyn yu cu chuyn sang URL mi Ti nguyn yu cu tm thi dng URL khc Li do Client, cn cc hnh ng tip hon thnh request Request sai Li ng nhp (Unauthorized) Ti nguyn khng c quyn x dng Khng tm thy ti nguyn yu cu Li do Server Li cc b Dch v qu ti

4. V d minh ha - V d minh ha l chng trnh Web Server n gin (x l GET, port 8080), giao tip bng Web Client (browser) vi request: http://localhost:8080/index.html. II. File Transfer Protocol (FTP port 21) 1. Khi nim - FTP (File Transfer Protocol) l giao thc cp ng dng cho php chia s tp tin gia cc host. FTP dng TCP to mt kt ni o cho vic iu khin chuyn thng tin, ri cng dng TCP to mt kt ni khc cho vic lu chuyn d liu. M t trong RFC 959. FTP dng c ch chng thc (authentication) c bn, ng nhp bng username v password, cho php truy cp vi ch anonymous.

Dng Thin T

Hutech - 2008

FTP Client User-FTP Process User Interface User 21: Control Connecti on 20: Data Connecti on FTP Server Server-FTP Process Server Protocol Interpreter (Server-PI) Server Data Transfer Process (Server DTP) Server File System

User Protocol Interpreter (User-PI) User Data Transfer Process (User DTP) Client File System

2. Tp lnh FTP
Lnh ABOR ACCT account ALLO bytes APPE filename CDUP dir path CWD dir path DELE filename HELP command LIST name MODE mode MKD directory NLST directory NOOP PASS password PASV PORT address PWD QUIT REIN REST offset RETR filename RMD directory RNFR old path RNTO new path SITE params SMNT pathname STAT directory STOR filename STOU filename STRU type SYST TYPE data type USER username M t (ABORT) B kt ni d liu. (ACCOUNT) Cung cp ti khon ngi dng. (ALLOCATION) Cp pht cho lu tr trn server. (APPEND) Ni tip file cng tn trn server. Chuyn n th mc cha. (Change Working Directory) Chuyn n th mc lm vic. (DELETE) Xa file ch nh trn server. Tr v thng tin v lnh ch nh. Hin th thng tin file hoc lit k danh sch file ca th mc. Ch chuyn file (S=stream, B=block, C=compressed). (Make Directory) To th mc ch nh trn server. Hin th ni dung ca th mc ch nh. Khng lm g. (PASSWORD) Mt khu ng nhp h thng. (PASSIVE) Yu cu server ch kt ni d liu. a ch IP v port ID. (Print Working Directory) Hin th th mc lm vic hin hnh. ng xut khi FTP server. Khi to li kt ni thnh trng thi ng nhp. (RESET) Khi ng chuyn file li t offset ch nh. (RETRIEVE) Ly (copy) file t server (download). (ReMove Directory) Xa th mc ch nh trn server. i tn t mt ng dn c. i tn thnh mt ng dn mi. Cc tham s ch nh site cung cp bi server. Kt ni (mount) vi cu trc file ch nh. Tr v thng tin trng thi hin ti. Lu (copy) file n server (upload). Lu file n server. Cu trc d liu (F=file, R=record, P=page). (SYSTEM) Tr v H iu hnh chy trn server. Kiu d liu (A=ASCII, E=EBCDIC, I=binary). Tn ngi dng ng nhp h thng.

3. M tr v (reply code) - Mt s m tr v:
M tr v 125 Thng ip Kt ni d liu m, bt u chuyn 3

Dng Thin T

Hutech - 2008

150 200 220 230 226 227 250 257 331 500

Kt ni m OK Dch v sn sng ang ng nhp trn network ng kt ni d liu Vo ch passive Hnh ng thc hin trn file OK To ng dn Yu cu nhp mt khu Lnh khng hp l

4. Ch FTP
Client 1027 Data 1026 Cmd 1 2 3 4 Server 21 Cmd 20 Data Client 1027 Data 1026 Cmd 1 2 3 4 Server 21 Cmd 2024 20 Data

Active

Passive

a) Active - Khi client gi mt lnh cho server t port n (>1023) n port 21. Server x l xong s gi tr kt qu t port 21 n port n. Mi ln thc hin thao tc c lin quan n trao i d liu (nh download, upload, lit k th mc v file), server s ch ng m thm port 20, client v server trao i d liu thng qua port 20 pha server v port n+1 pha client. y l ch mc nh ca server.
% ftp -d testbox2 Connected to testbox2.slacksite.com. 220 testbox2.slacksite.com FTP server ready. Name (testbox2:slacker): slacker ---> USER slacker 331 Password required for slacker. Password: TmpPass ---> PASS XXXX 230 User slacker logged in. ---> SYST 215 UNIX Type: L8 Remote system type is UNIX. Using binary mode to transfer files. ftp> ls ftp: setsockopt (ignored): Permission denied ---> PORT 192,168,150,80,14,178 # IP: 192.168.150.80, port = 14 x 256 + 178 = 3762 200 PORT command successful. ---> LIST 150 Opening ASCII mode data connection for file list. drwx-----3 slacker users 104 Jul 27 01:45 public_html 226 Transfer complete. ftp> quit ---> QUIT 221 Goodbye.

b) Passive - Khi client gi mt lnh cho server t port n (>1023) n cng 21. Server x l xong s gi tr kt qu t port 21 n port n. Mi ln thc hin thao tc c lin quan n trao i d liu (nh download, upload, lit k th mc v file), server s khng t ng m port 20, client phi gi mt thng ip (PASV) n port 21, yu cu server m port bt k trao i d liu t port n port n+1 pha client.
4

Dng Thin T

Hutech - 2008

% ftp -d testbox2 Connected to testbox2.slacksite.com. 220 testbox2.slacksite.com FTP server ready. Name (testbox2:slacker): slacker ---> USER slacker 331 Password required for slacker. Password: TmpPass ---> PASS XXXX 230 User slacker logged in. ---> SYST 215 UNIX Type: L8 Remote system type is UNIX. Using binary mode to transfer files. ftp> passive Passive mode on. ftp> ls ftp: setsockopt (ignored): Permission denied ---> PASV 227 Entering Passive Mode (192,168,150,90,195,149). ---> LIST 150 Opening ASCII mode data connection for file list drwx-----3 slacker users 104 Jul 27 01:45 public_html 226 Transfer complete. ftp> quit ---> QUIT 221 Goodbye.

5. V d minh ha - V d minh ha l chng trnh FTP Server n gin, giao tip bng lnh ftp. III. Simple Mail Transfer Protocol (SMTP port 25) v Post Office Protocol (POP3 port 110) 1. Khi nim - a s cc gi email dng m hnh giao tip gi/nhn email ca Unix, gm 3 phn: + Message Transfer Agent (MTA) + Message Delivery Agent (MDA) + Message User Agent (MUA) - SMTP (Simple Mail Transfer Protocol) l giao thc c thit k chuyn th in t (email) tin cy v hiu qu gia cc mail server. SMTP dng TCP nh mt giao thc chuyn d liu. V c bn, mt SMTP session cha mt i thoi gia hai my s chuyn email. M t trong RFC 2821. - Mt SMTP session hot ng nh sau:
% telnet i-netway.com 25 Trying. . . Connected to i-netway.com 220 I-NETWAY.COM - Server ESMTP (PMDF v4.3-10 #2381) HELO wrox.com 250 I-NETWAY.COM OK, WROX.COM. MAIL FROM:<editor@wrox.com> 250 Address Ok. RCPT TO:<krowczyk@i-netway.com> 250 krowczyk@i-netway.com OK. DATA 354 Enter mail, end with a single ".". SUBJECT:Contact me! Dear Sir, Please give me a call to discuss your offer. . 250 OK. 250 OK. QUIT 221 Bye received. Goodbye.

- Khi cn ly email t mail server, c 3 m hnh x l:


5

Dng Thin T

Hutech - 2008

+ Offline (POP3): client kt ni n mail server v ko mail v client. Tt c cc mail ly c u lu tr trn my client (ti POP store), khng trn server. Thng mail trn server s b xa khi ly. + Online (Original IMAP): client kt ni n server khi ly mail v xem mail. Mi th c lu tr trn server. + Disconnected (Later IMAP): client v server chia s ni lu tr thng ip. Client phi ng b danh sch thng ip vi server. - POP3 cho php mt client ly mail t mail server, c v qun l n d dng trn my client. M t trong RFC 1939. Hot ng ca POP3 nh sau:
% telnet mail.someserver.com 110 Trying. . . Connected to MAIL.SOMESERVER.COM +OK test.someserver.COM MultiNet POP3 Server Process v4.0(1) at Fri 20-Jun-2007 3:21PM-CST USER krowczyk +OK User Name (krowczyk) ok. Password, please. PASS secret +OK 3 messages in folder INBOX (V4.0) LIST 2 +OK 2 7124 STAT +OK 3 14749 RETR 1 +OK 120 octets Hello, how are you Bob?, havent seen you in ages, any chance you could give me a call sometime? Id love to see you. Alice . DELE 1 +OK message 1 deleted QUIT +OK POP# MultiNet test.somewhere.COM Server exiting (3 INBOX messages left)

2. Lnh SMTP v m tr v
Lnh HELO domain MAIL FROM:host RCPT TO:user DATA SEND FROM:host SOML FROM:host SAML FROM:host RSET VRFY user EXPN string HELP command NOOP QUIT TURN M t (HELLO) Tr v nh danh ca mail server. Khi to mt mail session. (RECIPIENT) Cho bit a ch ngi nhn mail. Nu send nhiu ngi, nhiu lnh c dng. Bt u thng ip mail. D liu theo sau lnh ny s c ni tip vo mail buffer. Kt thc bng chui CRLF .CRLF Khi to mt mail transaction, chuyn email n mt hay nhiu terminal. t dng. (SEND or MAIL) Khi to mt mail transaction, chuyn email n mt hay nhiu terminal hoc mailbox. t dng. (SEND and MAIL) Khi to mt mail transaction, chuyn email n mt v nhiu terminal hoc mailbox. t dng. (RESET) Thit lp li mail connection. (VERIFY) Xc minh nh danh ca mt ngi dng. (EXPAND) Tng t VRFY nhng dng vi nhiu ngi nhn. Tr v thng tin tr gip. Khng lm g. Bn nhn s tr v mt OK replay. Chm dt mail session. ng kt ni vi bn gi. Chuyn vai tr gia ngi nhn v ngi gi. Lc hu.

- M tr v l cm 3 s: s u cho bit thnh cng, tht bi hoc khng hon thnh; s th hai l loi thng ip li; s th ba l thng ip ch nh cho loi li. Mt s m tr v:
M tr v 500 501 502 503 220 221 421 250 354 Thng ip Li c php, lnh khng nhn ra Li c php trong tham s hoc i s Lnh khng c ci t Chui lnh sai domain Dch v sn sng domain Dch v ng knh truyn domain Dch v khng c sn, ng knh truyn Tc v mail yu cu OK, hon thnh Bt u nhn d liu mail vo buffer, kt thc vi CRLF .CRLF 6

Dng Thin T

Hutech - 2008

550 553 554

Tc v yu cu khng thc hin c, mailbox khng c sn Tc v yu cu khng thc hin c, tn mailbox khng c Giao tc tht bi

3. Lnh POP3
Lnh USER name PASS password QUIT DELE msg RSET STAT RETR msg LIST msg NOOP M t Username client dng m mailbox. Password client dng m mailbox. Dng hoc kt thc session. Xa mail t server. Hi li bt c thay i no trong session hin ti. Tr v s thng ip c trn server. Ly ni dung ca thng ip. Tr v thng tin ca thng ip l tham s. Nu khng c tham s, tr v danh sch cc thng ip. Khng lm g. Bn nhn s tr v mt +OK.

- M tr v +OK cho kt qu thnh cng v ERR cho li. 4. V d minh ha - V d minh ha l chng trnh SMTP n gin gi mail, nhn mail bng POP3 thng qua telnet.

You might also like