m S i m p l e H T T P S e r v e r 8 0 8 0 S e r v i n g H T T P o n 0 . 0 . 0 . 0 p o r t 8 0 8 0 . . . 1 2 7 . 0 . 0 . 1 - - [ 0 2 / F e b / 2 0 1 6 0 5 : 1 6 : 0 9 ] " G E T / H T T P / 1 . 1 " 2 0 0 - 1 2 7 . 0 . 0 . 1 - - [ 0 2 / F e b / 2 0 1 6 0 5 : 1 8 : 1 1 ] " G E T / H T T P / 1 . 1 " 2 0 0 - 6 / 24
n - m S i m p l e H T T P S e r v e r 8 0 8 0 S e r v i n g H T T P o n 0 . 0 . 0 . 0 p o r t 8 0 8 0 . . . 1 2 7 . 0 . 0 . 1 - - [ 0 2 / F e b / 2 0 1 6 0 5 : 3 3 : 0 6 ] c o d e 4 0 4 , m e s s a g e F i l e n o t f o u n d 1 2 7 . 0 . 0 . 1 - - [ 0 2 / F e b / 2 0 1 6 0 5 : 3 3 : 0 6 ] " G E T / o n c o m H T T P / 1 . 1 " A Different Port 9 / 24
S i m p l e H T T P S e r v e r 8 0 8 0 S e r v i n g H T T P o n 0 . 0 . 0 . 0 p o r t 8 0 8 0 . . . 1 2 7 . 0 . 0 . 1 - - [ 0 2 / F e b / 2 0 1 6 0 5 : 4 0 : 4 1 ] c o d e 5 0 1 , m e s s a g e U n s u p p o r t e d m e t h o d ( ' P O S T ' ) 1 2 7 . 0 . 0 . 1 - - [ 0 2 / F e b / 2 0 1 6 0 5 : 4 0 : 4 1 ] " P O S T / H T T P / 1 . 1 " 5 0 1 - A Different Verb 10 / 24
T P / 1 . 1 H o s t : l o c a l h o s t : 8 0 8 0 # o r s i m p l y G E T / H T T P / 1 . 1 $ > p y t h o n - m S i m p l e H T T P S e r v e r 8 0 8 0 S e r v i n g H T T P o n 0 . 0 . 0 . 0 p o r t 8 0 8 0 . . . 1 2 7 . 0 . 0 . 1 - - [ 0 3 / F e b / 2 0 1 6 0 3 : 1 6 : 3 7 ] " G E T / H T T P / 1 . 1 " 2 0 0 - 1 2 7 . 0 . 0 . 1 - - [ 0 3 / F e b / 2 0 1 6 0 3 : 1 8 : 1 2 ] " G E T / H T T P / 1 . 1 " 2 0 0 - Response H T T P / 1 . 0 2 0 0 O K S e r v e r : S i m p l e H T T P / 0 . 6 P y t h o n / 2 . 7 . 1 0 D a t e : T u e , 0 2 F e b 2 0 1 6 2 0 : 1 6 : 3 7 G M T C o n t e n t - t y p e : t e x t / h t m l ; c h a r s e t = m b c s C o n t e n t - L e n g t h : 2 4 6 < ! D O C T Y P E h t m l P U B L I C " - / / W 3 C / / D T D H T M L 3 . 2 F i n a l / / E N " > < h t m l < t i t l e > D i r e c t o r y l i s t i n g f o r / < / t i t l e > < b o d y > < h 2 > D i r e c t o r y l i s t i n g f o r / < / h 2 > < h r > < u l > < l i > < a h r e f = " s e r v . p y " > s e r v . p y < / a > < l i > < a h r e f = " s o u r c e / " > s o u r c e / < / a > < / u l > < h r > < / b o d y > < / h t m l > 12 / 24
T T P / 1 . 1 # G E T $ > p y t h o n - m S i m p l e H T T P S e r v e r 8 0 8 0 S e r v i n g H T T P o n 0 . 0 . 0 . 0 p o r t 8 0 8 0 . . . 1 2 7 . 0 . 0 . 1 - - [ 0 3 / F e b / 2 0 1 6 0 3 : 2 1 : 1 9 ] c o d e 4 0 4 , m e s s a g e F i l e n o t f o u n d 1 2 7 . 0 . 0 . 1 - - [ 0 3 / F e b / 2 0 1 6 0 3 : 2 1 : 1 9 ] " G E T H T T P / 1 . 1 " 4 0 4 - 1 2 7 . 0 . 0 . 1 - - [ 0 3 / F e b / 2 0 1 6 0 3 : 2 2 : 3 7 ] c o d e 4 0 0 , m e s s a g e B a d r e q u e s t s y n t a x ( 1 2 7 . 0 . 0 . 1 - - [ 0 3 / F e b / 2 0 1 6 0 3 : 2 2 : 3 7 ] " G E T " 4 0 0 - Responses < h e a d > < t i t l e > E r r o r r e s p o n s e < / t i t l e > < / h e a d > < b o d y > < h 1 > E r r o r r e s p o n s e < / h 1 > < p > E r r o r c o d e 4 0 4 . < p > M e s s a g e : F i l e n o t f o u n d . < p > E r r o r c o d e e x p l a n a t i o n : 4 0 4 = N o t h i n g m a t c h e s t h e g i v e n U R I < / b o d y > < h e a d > < t i t l e > E r r o r r e s p o n s e < / t i t l e > < / h e a d > < b o d y > < h 1 > E r r o r r e s p o n s e < / h 1 > < p > E r r o r c o d e 4 0 0 . < p > M e s s a g e : B a d r e q u e s t s y n t a x ( ' G E T ' ) . < p > E r r o r c o d e e x p l a n a t i o n : 4 0 0 = B a d r e q u e s t s y n t a x o r u n s u p p o < / b o d y > 13 / 24
o n c o m H T T P / 1 . 1 $ > p y t h o n - m S i m p l e H T T P S e r v e r 8 0 8 0 S e r v i n g H T T P o n 0 . 0 . 0 . 0 p o r t 8 0 8 0 . . . 1 2 7 . 0 . 0 . 1 - - [ 0 3 / F e b / 2 0 1 6 0 3 : 1 8 : 5 1 ] c o d e 4 0 4 , m e s s a g e F i l e n o t f o u n d 1 2 7 . 0 . 0 . 1 - - [ 0 3 / F e b / 2 0 1 6 0 3 : 1 8 : 5 1 ] " G E T / o n c o m H T T P / 1 . 1 " Response H T T P / 1 . 0 4 0 4 F i l e n o t f o u n d S e r v e r : S i m p l e H T T P / 0 . 6 P y t h o n / 2 . 7 . 1 0 D a t e : T u e , 0 2 F e b 2 0 1 6 2 0 : 1 8 : 5 1 G M T C o n t e n t - T y p e : t e x t / h t m l C o n n e c t i o n : c l o s e < h e a d > < t i t l e > E r r o r r e s p o n s e < / t i t l e > < / h e a d > < b o d y > < h 1 > E r r o r r e s p o n s e < / h 1 > < p > E r r o r c o d e 4 0 4 . < p > M e s s a g e : F i l e n o t f o u n d . < p > E r r o r c o d e e x p l a n a t i o n : 4 0 4 = N o t h i n g m a t c h e s t h e g i v e n U R I < / b o d y > 14 / 24
/ H T T P / 1 . 1 $ > p y t h o n - m S i m p l e H T T P S e r v e r 8 0 8 0 S e r v i n g H T T P o n 0 . 0 . 0 . 0 p o r t 8 0 8 0 . . . 1 2 7 . 0 . 0 . 1 - - [ 0 3 / F e b / 2 0 1 6 0 3 : 2 6 : 2 3 ] c o d e 5 0 1 , m e s s a g e U n s u p p o r t e d m e t h o d ( 1 2 7 . 0 . 0 . 1 - - [ 0 3 / F e b / 2 0 1 6 0 3 : 2 6 : 2 3 ] " P O S T / H T T P / 1 . 1 " 5 0 1 - Response H T T P / 1 . 0 5 0 1 U n s u p p o r t e d m e t h o d ( ' P O S T ' ) S e r v e r : S i m p l e H T T P / 0 . 6 P y t h o n / 2 . 7 . 1 0 D a t e : T u e , 0 2 F e b 2 0 1 6 2 0 : 2 6 : 2 3 G M T C o n t e n t - T y p e : t e x t / h t m l C o n n e c t i o n : c l o s e < h e a d > < t i t l e > E r r o r r e s p o n s e < / t i t l e > < / h e a d > < b o d y > < h 1 > E r r o r r e s p o n s e < / h 1 > < p > E r r o r c o d e 5 0 1 . < p > M e s s a g e : U n s u p p o r t e d m e t h o d ( ' P O S T ' ) . < p > E r r o r c o d e e x p l a n a t i o n : 5 0 1 = S e r v e r d o e s n o t s u p p o r t t h i s < / b o d y > 15 / 24
i m p l e H T T P S e r v e r i m p o r t S o c k e t S e r v e r # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - P O R T = 8 0 0 0 H a n d l e r = S i m p l e H T T P S e r v e r . S i m p l e H T T P R e q u e s t H a n d l e r h t t p d = S o c k e t S e r v e r . T C P S e r v e r ( ( " " , P O R T ) , H a n d l e r ) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - p r i n t " S e r v i n g a t p o r t " , P O R T h t t p d . s e r v e _ f o r e v e r ( ) $ > p y t h o n s e r v e r - 0 0 . p y S e r v i n g a t p o r t 8 0 0 0 1 2 7 . 0 . 0 . 1 - - [ 0 4 / F e b / 2 0 1 6 0 9 : 3 4 : 4 5 ] " G E T / H T T P / 1 . 1 " 2 0 0 - 1 2 7 . 0 . 0 . 1 - - [ 0 4 / F e b / 2 0 1 6 0 9 : 3 8 : 4 1 ] c o d e 5 0 1 , m e s s a g e U n s u p p o r t e d m e t h o d ( 1 2 7 . 0 . 0 . 1 - - [ 0 4 / F e b / 2 0 1 6 0 9 : 3 8 : 4 1 ] " P O S T / H T T P / 1 . 1 " 5 0 1 - cURL $ > c u r l - v h t t p : / / l o c a l h o s t : 8 0 0 0 / # . . . C o n n e c t e d t o l o c a l h o s t ( 1 2 7 . 0 . 0 . 1 ) p o r t 8 0 0 0 ( # 0 ) > G E T / H T T P / 1 . 1 > H o s t : l o c a l h o s t : 8 0 0 0 > U s e r - A g e n t : c u r l / 7 . 4 7 . 0 > A c c e p t : * / * > # H T T P 1 . 0 , a s s u m e c l o s e a f t e r b o d y < H T T P / 1 . 0 2 0 0 O K < S e r v e r : S i m p l e H T T P / 0 . 6 P y t h o n / 2 . 7 . 1 0 < D a t e : T h u , 0 4 F e b 2 0 1 6 0 2 : 3 4 : 4 5 G M T < C o n t e n t - t y p e : t e x t / h t m l ; c h a r s e t = m b c s < C o n t e n t - L e n g t h : 4 1 6 < < ! D O C T Y P E h t m l P U B L I C " - / / W 3 C / / D T D H T M L 3 . 2 F i n a l / / E N " > < h t m l > < t i t l e > D i r e c t o r y l i s t i n g f o r / < / t i t l e > < b o d y > < h 2 > D i r e c t o r y l i s t i n g f o r / < / h 2 > < h r > < u l > < l i > < a h r e f = " f i l e . h t m l " > f i l e . h t m l < / a > < l i > < a h r e f = " s e r v e r - 0 0 . p y " > s e r v e r - 0 0 . p y < / a > < l i > < a h r e f = " s e r v e r - 0 1 . p y " > s e r v e r - 0 1 . p y < / a > < l i > < a h r e f = " s e r v e r - 0 2 . p y " > s e r v e r - 0 2 . p y < / a > < l i > < a h r e f = " s o u r c e / " > s o u r c e / < / a > < / u l > < h r > < / b o d y > < / h t m l > # C l o s i n g c o n n e c t i o n 0 17 / 24
s e r v e r - 0 0 . p y S e r v i n g a t p o r t 8 0 0 0 1 2 7 . 0 . 0 . 1 - - [ 0 4 / F e b / 2 0 1 6 0 9 : 3 4 : 4 5 ] " G E T / H T T P / 1 . 1 " 2 0 0 - 1 2 7 . 0 . 0 . 1 - - [ 0 4 / F e b / 2 0 1 6 0 9 : 3 8 : 4 1 ] c o d e 5 0 1 , m e s s a g e U n s u p p o r t e d m e t h o d ( 1 2 7 . 0 . 0 . 1 - - [ 0 4 / F e b / 2 0 1 6 0 9 : 3 8 : 4 1 ] " P O S T / H T T P / 1 . 1 " 5 0 1 - cURL $ > c u r l - v - X P O S T h t t p : / / l o c a l h o s t : 8 0 0 0 / $ > c u r l - v - d ' ' h t t p : / / l o c a l h o s t : 8 0 0 0 / # . . . C o n n e c t e d t o l o c a l h o s t ( 1 2 7 . 0 . 0 . 1 ) p o r t 8 0 0 0 ( # 0 ) > P O S T / H T T P / 1 . 1 > H o s t : l o c a l h o s t : 8 0 0 0 > U s e r - A g e n t : c u r l / 7 . 4 7 . 0 > A c c e p t : * / * > C o n t e n t - L e n g t h : 2 > C o n t e n t - T y p e : a p p l i c a t i o n / x - w w w - f o r m - u r l e n c o d e d > # u p l o a d c o m p l e t e l y s e n t o f f : 2 o u t o f 2 b y t e s # H T T P 1 . 0 , a s s u m e c l o s e a f t e r b o d y < H T T P / 1 . 0 5 0 1 U n s u p p o r t e d m e t h o d ( ' P O S T ' ) < S e r v e r : S i m p l e H T T P / 0 . 6 P y t h o n / 2 . 7 . 1 0 < D a t e : T h u , 0 4 F e b 2 0 1 6 0 2 : 3 8 : 4 1 G M T < C o n t e n t - T y p e : t e x t / h t m l < C o n n e c t i o n : c l o s e < < h e a d > < t i t l e > E r r o r r e s p o n s e < / t i t l e > < / h e a d > < b o d y > < h 1 > E r r o r r e s p o n s e < / h 1 > < p > E r r o r c o d e 5 0 1 . < p > M e s s a g e : U n s u p p o r t e d m e t h o d ( ' P O S T ' ) . < p > E r r o r c o d e e x p l a n a t i o n : 5 0 1 = S e r v e r d o e s n o t s u p p o r t t h i s < / b o d y > # C l o s i n g c o n n e c t i o n 0 18 / 24
S i m p l e H T T P S e r v e r i m p o r t S o c k e t S e r v e r # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - c l a s s G e t H a n d l e r ( S i m p l e H T T P S e r v e r . S i m p l e H T T P R e q u e s t H a n d l e r ) : d e f d o _ G E T ( s e l f ) : p r i n t s e l f . h e a d e r s S i m p l e H T T P S e r v e r . S i m p l e H T T P R e q u e s t H a n d l e r . d o _ G E T ( s e l f ) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - P O R T = 8 0 0 0 H a n d l e r = G e t H a n d l e r h t t p d = S o c k e t S e r v e r . T C P S e r v e r ( ( " " , P O R T ) , H a n d l e r ) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - p r i n t " s e r v i n g a t p o r t " , P O R T h t t p d . s e r v e _ f o r e v e r ( ) $ > p y t h o n s e r v e r - 0 1 . p y s e r v i n g a t p o r t 8 0 0 0 H o s t : l o c a l h o s t : 8 0 0 0 U s e r - A g e n t : c u r l / 7 . 4 7 . 0 A c c e p t : * / * 1 2 7 . 0 . 0 . 1 - - [ 0 4 / F e b / 2 0 1 6 1 1 : 5 0 : 1 2 ] " G E T / H T T P / 1 . 1 " 2 0 0 - $ > c u r l - v h t t p : / / l o c a l h o s t : 8 0 0 0 / # . . . C o n n e c t e d t o l o c a l h o s t ( 1 2 7 . 0 . 0 . 1 ) p o r t 8 0 0 0 ( # 0 ) > G E T / H T T P / 1 . 1 > H o s t : l o c a l h o s t : 8 0 0 0 > U s e r - A g e n t : c u r l / 7 . 4 7 . 0 > A c c e p t : * / * > # H T T P 1 . 0 , a s s u m e c l o s e a f t e r b o d y < H T T P / 1 . 0 2 0 0 O K < S e r v e r : S i m p l e H T T P / 0 . 6 P y t h o n / 2 . 7 . 1 0 < D a t e : T h u , 0 4 F e b 2 0 1 6 0 4 : 5 0 : 1 2 G M T < C o n t e n t - t y p e : t e x t / h t m l ; c h a r s e t = m b c s < C o n t e n t - L e n g t h : 4 1 6 < < ! D O C T Y P E h t m l P U B L I C " - / / W 3 C / / D T D H T M L 3 . 2 F i n a l / / E N " > < h t m l > . . . C l o s i n g c o n n e c t i o n 0 19 / 24
S i m p l e H T T P S e r v e r i m p o r t S o c k e t S e r v e r # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - c l a s s G e t H a n d l e r ( S i m p l e H T T P S e r v e r . S i m p l e H T T P R e q u e s t H a n d l e r ) d e f d o _ G E T ( s e l f ) : p r i n t s e l f . h e a d e r s S i m p l e H T T P S e r v e r . S i m p l e H T T P R e q u e s t H a n d l e r . d o _ G E T ( s e l f ) d e f d o _ P O S T ( s e l f ) : p r i n t s e l f . h e a d e r s S i m p l e H T T P S e r v e r . S i m p l e H T T P R e q u e s t H a n d l e r . d o _ G E T ( s e l f ) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - P O R T = 8 0 0 0 H a n d l e r = G e t H a n d l e r h t t p d = S o c k e t S e r v e r . T C P S e r v e r ( ( " " , P O R T ) , H a n d l e r ) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - p r i n t " s e r v i n g a t p o r t " , P O R T h t t p d . s e r v e _ f o r e v e r ( ) 20 / 24
o n s e r v e r - 0 2 . p y s e r v i n g a t p o r t 8 0 0 0 H o s t : l o c a l h o s t : 8 0 0 0 U s e r - A g e n t : c u r l / 7 . 4 7 . 0 A c c e p t : * / * 1 2 7 . 0 . 0 . 1 - - [ 0 4 / F e b / 2 0 1 6 1 4 : 0 5 : 5 6 ] " P O S T / H T T P / 1 . 1 " 2 0 0 - H o s t : l o c a l h o s t : 8 0 0 0 U s e r - A g e n t : c u r l / 7 . 4 7 . 0 A c c e p t : * / * C o n t e n t - L e n g t h : 2 C o n t e n t - T y p e : a p p l i c a t i o n / x - w w w - f o r m - u r l e n c o d e d 1 2 7 . 0 . 0 . 1 - - [ 0 4 / F e b / 2 0 1 6 1 4 : 0 7 : 2 2 ] " P O S T / H T T P / 1 . 1 " 2 0 0 - $ > c u r l - v - X P O S T h t t p : / / l o c a l h o s t : 8 0 0 0 / $ > c u r l - v - X P O S T h t t p : / / l o c a l h o s t : 8 0 0 0 / - d ' ' # . . . C o n n e c t e d t o l o c a l h o s t ( 1 2 7 . 0 . 0 . 1 ) p o r t 8 0 0 0 ( # 0 ) > P O S T / H T T P / 1 . 1 > H o s t : l o c a l h o s t : 8 0 0 0 > U s e r - A g e n t : c u r l / 7 . 4 7 . 0 > A c c e p t : * / * > C o n t e n t - L e n g t h : 2 > C o n t e n t - T y p e : a p p l i c a t i o n / x - w w w - f o r m - u r l e n c o d e d > # u p l o a d c o m p l e t e l y s e n t o f f : 2 o u t o f 2 b y t e s # H T T P 1 . 0 , a s s u m e c l o s e a f t e r b o d y < H T T P / 1 . 0 2 0 0 O K < S e r v e r : S i m p l e H T T P / 0 . 6 P y t h o n / 2 . 7 . 1 0 < D a t e : T h u , 0 4 F e b 2 0 1 6 0 7 : 0 7 : 2 2 G M T < C o n t e n t - t y p e : t e x t / h t m l ; c h a r s e t = m b c s < C o n t e n t - L e n g t h : 4 1 6 < < ! D O C T Y P E h t m l P U B L I C " - / / W 3 C / / D T D H T M L 3 . 2 F i n a l / / E N " > < h t m l > < t i t l e > D i r e c t o r y l i s t i n g f o r / < / t i t l e > < b o d y > < h 2 > D i r e c t o r y l i s t i n g f o r / < / h 2 > < h r > < u l > < l i > < a h r e f = " f i l e . h t m l " > f i l e . h t m l < / a > < l i > < a h r e f = " s e r v . p y " > s e r v . p y < / a > < / u l > < h r > < / b o d y > < / h t m l > # C l o s i n g c o n n e c t i o n 0 21 / 24