该用户从未签到
|
1、http协议(了解)) Q$ ?& X- u1 ^+ X4 A2 t; _
1)http协议是什么?: Z. d2 G' R) Y% F# M% I, w
超文本传输控制协议(hypertext transport protocal)。& }* [/ w& e3 Z7 ?, x9 O
是一种应用层协议,定义了浏览器(也可以是其它程序)
) ~% o: n! u8 c7 _' x与web服务器之间通讯的过程与数据的格式。' w# z3 [0 A& \$ T
2)通讯的过程
t1 d$ I9 \9 k5 v5 Z a,浏览器向服务器发送建立连接的请求。
& n$ j ^% F9 x2 w" ] b,浏览器先将请求数据打包,向服务器发送请求。
% I- O0 a% E. @6 _' p( h c,服务器处理完请求,然后将数据打包,发送给浏览器。, ~: z: y' V/ _$ |- @4 V
d,服务器发送完数据,并闭连接。8 J9 _1 a9 ?+ J
如果浏览器要向服务器再次发送请求,需要重新% k z' E) D a( ~7 M
建立连接。也就是说,浏览器与服务器之间的连接,
* F/ Z. t( Y' v. h' G. k v! g 只能处理一次请求,然后立即关闭。这种通讯方式,* c" ]4 r6 L" @1 W$ r( V1 Q
可以让服务器以有限的资源为更多的客户端服务。 R; w3 s- e$ ^2 H
3)数据包的结构/ Q& n- N& [ `3 c9 ?" h
a,请求数据包的结构" R+ s% i5 o6 ^3 I9 ]
第一部分:
" t' s2 o) {1 i8 O0 D4 } G" b 请求行:
+ S9 B8 R- ?( T 请求方式(get/post) 6 N) t, Q G* B; e% n9 C& H/ a
请求资源路径 & r* J% r. Y. y3 s3 W
协议的类型与版本
1 ~9 i) i! t9 A# H1 {! o 第二部分:
" N: [/ N' F/ b* p: s2 i& ~' { 若干消息头:6 s$ D. C, o- C- r
消息头由w3c定义的一些有特殊含义的键值对,1 r, `6 ^3 z3 D
比如:content-type= text/html;3 J/ l& Z5 H6 @& w0 o
服务器和浏览器都会遵守这些消息头的约定。
9 d- d$ M! J1 e+ o" u& X0 x/ F 消息头一般由服务器或者浏览器自动生成,但是
3 A; o5 z$ n) R+ R1 o ,也可以通过编程的方式来生成。
7 L+ t: \9 G4 m# J( |0 A 第三部分:+ t( Q) N2 I: T; C& g; A( W) @- l
实体内容:
2 n' Q4 o1 I, K6 o" X8 X2 U7 M 如果请求方式是post方式,请求参数及值会0 U. H6 O6 {: z9 @
放在这儿。如果请求方式是get方式,请求参数. x6 e& E* e! |+ o/ X
与值是包含在请求资源路径里面。
% P7 r) X' |( a: O6 ]! l& l1 M7 L' K/ D
% Z" R) C* b" i9 ~" R: S9 ?: k) ` b,响应数据包的结构/ W4 |" j, g7 X
第一部分:
* |! w, D2 n6 n1 }, i7 A% V. p 状态行:
4 l5 V* J. w5 H/ z/ z/ k 协议的类型与版本
% B" J$ j1 U* d5 N! G& G 状态码(状态码是一个数字,不同的数字代表
( k* p' r3 p N1 s9 A 不同的含义,比如2 @; L2 ^( b/ t1 Z- c0 ^
500:系统错误(即程序代码有误)! z. ~2 N: {* w1 X9 | Q+ {$ E( _
404:找不到资源(访问路径错误)
Q! X* X. N5 Y( m+ e# l 200:正确)
' s1 M! U1 y" T 状态码的描述/ t% v3 O A* ~7 R- r
第二部分:7 s* f& v5 i9 _& i4 x% |
若干消息头:- q" S$ C. m- P2 N. P/ @6 g) p$ a
第三部分:5 ~5 n: A7 [" x0 n/ U
实体内容:
1 y9 G- R! r+ c( d+ @! p2 H 服务器返回给浏览器的处理结果。
7 ^7 \' ^) `- u" T' B0 J- z- J/ d; J: @9 P, c0 M6 V7 R
|
|