该用户从未签到
|
1、http协议(了解)
' j3 }0 ^, E% k# }* o& r; r 1)http协议是什么?
# u( V7 t) i: V# M- S5 q! y7 N3 H$ F 超文本传输控制协议(hypertext transport protocal)。: D9 G8 C4 ]2 H. P
是一种应用层协议,定义了浏览器(也可以是其它程序)
% o5 S8 E$ C) f3 [+ U与web服务器之间通讯的过程与数据的格式。' Q. s$ i! J. ?1 T/ Z
2)通讯的过程! s$ ~% ]4 H' C z/ g R+ \6 _
a,浏览器向服务器发送建立连接的请求。) ]& G9 ~) u* o
b,浏览器先将请求数据打包,向服务器发送请求。
% p& v5 `. i' g; n6 ?. p0 g c,服务器处理完请求,然后将数据打包,发送给浏览器。
( n( F" e, ?0 @& z% ?0 g: U d,服务器发送完数据,并闭连接。4 M5 Q* [ y4 W' Q6 Q; D6 }' O
如果浏览器要向服务器再次发送请求,需要重新
8 ?* x5 ?5 C) o4 D, i; [ 建立连接。也就是说,浏览器与服务器之间的连接,, T: S& D4 Q' }& e
只能处理一次请求,然后立即关闭。这种通讯方式,& k( u4 G" F7 x/ l: @
可以让服务器以有限的资源为更多的客户端服务。1 l0 ?& Q2 g! k; j/ u. w" \* ~
3)数据包的结构
9 W' Z; {# Y. i2 L& t a,请求数据包的结构: ]9 y7 u6 E h1 q0 L, i3 o! I$ s( |
第一部分:" w2 Q& f5 w+ E& M3 l
请求行:; _9 M2 H) _, ]1 J
请求方式(get/post) & N7 j) i8 @4 o/ U) ?$ D$ z
请求资源路径
8 Z6 \4 K6 v/ l6 F 协议的类型与版本 v& Z! C: ^& @3 |* V0 ~' T# W" U
第二部分:+ O* p0 C' }! M: M& u
若干消息头:& e. M, i. \7 U" n" A
消息头由w3c定义的一些有特殊含义的键值对,
, _# K( u" ]9 U1 `$ L. B 比如:content-type= text/html;
3 w- ^( `# b5 ^* R Y4 ~ 服务器和浏览器都会遵守这些消息头的约定。
6 {" B% F# l" X4 Q1 n 消息头一般由服务器或者浏览器自动生成,但是
5 m/ @" P0 u2 M/ F& P7 U! y- T ,也可以通过编程的方式来生成。
# C; t! Y1 |9 w$ V 第三部分:+ g- Y& f$ L6 Y3 ]( _1 l7 F8 l
实体内容:
* Z' A4 ~7 T9 s 如果请求方式是post方式,请求参数及值会
9 Q8 t) _+ W$ a5 L! K 放在这儿。如果请求方式是get方式,请求参数
& K, r( p3 M+ Z7 j; c0 t 与值是包含在请求资源路径里面。+ ^" z6 C4 a- F! W+ w& a2 q- ?
1 k* f. n8 o1 `4 k% `
b,响应数据包的结构
6 l: D9 i4 @- S3 r5 c* g! e: W 第一部分:
6 x! S9 f4 g: V# }" {1 y$ V8 w 状态行:" q! o/ l' K: x
协议的类型与版本" a5 o* {3 j+ o" W: i8 @
状态码(状态码是一个数字,不同的数字代表4 m* r- g' H8 B7 |" F2 ]
不同的含义,比如
9 |9 |9 d1 F! u8 A+ \ 500:系统错误(即程序代码有误)
: S: s! L6 R! ]/ x 404:找不到资源(访问路径错误), i, M! K2 E W
200:正确)9 Z6 ^/ t x# `# w( o6 i
状态码的描述
. R+ Q0 e+ y5 u, H 第二部分:
( J, a3 W& t# u D$ f' R& |9 y 若干消息头:% F3 i- r3 U+ ~
第三部分:0 s3 d/ b- _/ A
实体内容:
8 D* k5 ^ s4 u 服务器返回给浏览器的处理结果。: e8 o+ k8 k1 E+ c5 J1 q
3 B9 i6 V5 ]! h
|
|