2 0 H T T P C G I We b C G I We b H T M L C G I H T M L C G I 20.1 HTTP 17 We b N e t s c a p e Internet Explorer We b A p a c h e I I S C G I H T T P HTTP 1.0 HTTP 1.1 I n t e r n e t I n t e r n e t Request For C o m m e n t ( ) R F C R F C I n t e r n e t h t t p :// w w w. i e t f. o rg We b H T T P R F C 1 9 4 5 R F C 2 6 1 6 We b We b G E T U R L HTTP 1.0 c o n n e c t i o n We b We b k e e p - A l i v e
20 HTTP CGI 227 A c c e p t A c c e p */* i s o - 8959-1 A c c e p t - E n c o d i n g g z i p GNU Zip Ac c e p t - L a n g u a g e H o s t We b U R L We b M o z i l l a / 4. 51 [ e n ] C - c 32 f 404 p Wi n N T; U We b We b G E T We b 200 S e r v e r N e t s c a p e - Enterprise/3.51 G We b C o n t e n t - L e n g t h 2222 We b 50 % 60 % C o n t e n t - Ty p e We b H T M L t e x t / h t m l i m a g e / j p e g L a s t - M o d i f i e d We b We We b We We b We 20.1.1 Web We b We b We b Te l n e t Te l n e t U N I X H T T P U N I X Te l n e t Microsoft Wi n d o w s Te l n e t S t a r R u n Te l n e t M a c i n t o s h Te l n e t We b Te l n e t w w w. w e b s e r v e r. c o m We b 80 8 We b ) Te l n e t
228 Perl C G I Te l n e t H T T P U N I X Wi n d o w s M a c i n t o s h E n t e r We b H T T P We b 20.1.2 C G I H T M L C G I C G I h e a d e r M I M E C o n t e n t - Ty p e C o n t e n t - Ty p e h e a d e r t e x t / h t m l H T M L h e a d e r t e x t / h t m l - t y p e M I M E t e x t / p l a i n i m a g e / g i f i m a g e. j p e g G I F J P E G a p p l i c a t i o n / a p p n a m e a p p n a m e M I M E a p p l i c a t i o n / o c t e t - s t e a m We b We b We b H T M L Perl CGI We b H T M L H T M L < I M G > C G I. g i f. j p g
20 HTTP CGI 229. j p g G I F C G I d a i l y _ i m a g e. c g i 20-1 20-1 7 8 C G I H T M L $ i m a g e d i r $ e r r o r. j p g 1 0 ~ 16 Wi n d o w s S T D O U T. j p g S T D O U T b i n m o d e S T D O U T I M A G E U N I X b i n m o d e 12 1 9 H T T P C o n t e n t -Ty p e i m a g e / j p e g t e x t / h t m l 2 5 $ e r r o r d i s p l a y - i m a g e 2 6 r e a d d i r. j p g @ j p e g s
230 Perl C G I 20.2 CGI C G I C G I U R L U R L t i m e. c g i C G I t i m e. c g i We b 17 H e l l o Wo r l d C G I H T M L S u b a m i t C G I p r o c e s s. c g i C G I C G H T M L 20.2.1 CGI P e r l C G I f o o. c g i X t h i s Y t h a t <A HREF> U R L U R L 20-1 20-1 U R L CGI C G I H T M L C G I s i g n A r i e s y e a r 1969 C G I C G p a r a m
20 HTTP CGI 231 a u t h o r 20.2.2 C G I U R L U R L & I n t e r n e t RFC 2396 U R L A S C I I H e l l o, Wo r l d! U R L C G I U R L U R L H T M L CGI use CGI qw :all escape C G I e s c a p e U R L
232 Perl C G I C G I p a r a m U R L & C G I 20.3 We b We b We b We b S S I H T M L We b HTML We b We b 20-2 We b H T M L C G I 20-2 H T M L We b Web Web Web w/ssi S S I S S I H T M L H T M. s h t m l. s t m S S I Web We b H T M L H T M L Apache We b <!--#echo var= L A S T _ M O C I F I E D - - > A p a c h e We b We b
20 HTTP CGI 233 ( ) We b We b S S I We b S S I M i c r o s o f t Personal We b S S I SSI HTML Apache We b M i c r o s o f t Internet Information We b We b S S I We b S S I # e x e c SSI #exec H T M L We b # e x e c s t o c k p r i c e. c g i C G I C G I H T M L C G I # e x e c H T M L SSI We b H e l l o, Wo r l d 2 0-3 20-3 d a y. j p g n i g h t. j p g day. jpg night. jpg H T M L H T M L. s h t m l. s t m S S I
234 Perl C G I s u n m o o n. c g i 20-2 20-2 3 CGI C G I q w : a l l 6 l o c a l t i m e 4 l o c a l t i m e [ 2 ] $ h o u r # 2 24 1 5 C G I h e a d e r We b 1 6 < I M G > $ d a y $ n i g h t A LT 8 We b We b 20.4 C G I r e d i r e c t h e a d e r C G I e s c a p e p a r a m C G I 20-1 perldoc CGI C G I
20 HTTP CGI 235 We b We H T T P We b r e f e r e r u s e _ a g e n t We b s e r v e r _ n a m e 20-1 r e f e r e r u s e r _ a g e n t r e m o t e _ h o s t s c r i p t _ n a m e s e r v e r _ n a m e v i r t u a l _ h o s t We b U R L I n t e r n e t We b N e t s c a p e I E Ly n x We b I P We b U R L / c g i - b i n / f o o. c g i C G I C G I s e r v e r _ n a m e We b Vi r t u a l _ h o s t We b We b 20.5 C G I H T T P C G I We b We b We Microsoft Wi n d o w s N e t s c a p e We b
236 Perl C G I U R L C G I We b 20-4 20-4 We b We b a. Web Web X Web Y c. Web b. CGI C G I r e d i r e c t r e d i r e c t H T T P We b 20-3 Wi n d o w s N e t s c a p e We b We b 20-3 9 $ b r o w s e r 1 0 U R L $ t a rg e t N e t s c a p e 1 3 ~ 14 $ b r o w s e r M o z i l l a Wi n 1 6 C G I J a v a S c r i p t H T M L J a v a S c r i p t J a v a S c r i p t w i n d o w. l o c a t i o n. h r e f H T M L < M E TA HTTP- E Q U I V = r e f r e s h > We b J a v a S c r i p t H T T P H T M L
20 HTTP CGI 237 C G I u s e r _ a g e n t N e t s c a p e M o z i l l a We b M o s a i c Windows 95 Netscape 4.51 u s e r _ a g e n t M o z i l l a / 4. 51 Wi n 95 I 20.6 We b H T T P C G I S S HTTP 20.7 20.7.1 S S I S S I We b S S We b S S I We b S S I H T M L S S I HTML SSI <!--#exec cgi--> S S I C G We b view source S S I We b S S I Te l n e t Te l n e t We b Te l n e t 80 Te l n e t Te l n e t G E T E n t e r 20.7.2 1) U R L <A HREF=" /cgi/foo.pl? name=ben Franklin&Job=printer"> a. b. C G I c. Ben Franklin
238 Perl C G I 2) a. b. We b c. 20.7.3 1) c 2) b We b SSI HTML 20.7.4 Te l n e t We b We