该用户从未签到
|
1、http协议(了解)( Z& b. x! k, B8 p. {. {
1)http协议是什么?4 ~: [0 O! _& q! N- ^9 W
超文本传输控制协议(hypertext transport protocal)。
0 _4 i* t! b& c! v是一种应用层协议,定义了浏览器(也可以是其它程序)
" k: x, U. C4 c0 N1 D; q与web服务器之间通讯的过程与数据的格式。2 B: q) I5 q- f8 A4 a! I7 y
2)通讯的过程
# v" R7 D" j3 z$ w* } a,浏览器向服务器发送建立连接的请求。/ z" U) @1 R! q! ~4 c& }0 S
b,浏览器先将请求数据打包,向服务器发送请求。
, W7 r% Z1 L- b. { c,服务器处理完请求,然后将数据打包,发送给浏览器。 m% B% w& f; _- r( W. {
d,服务器发送完数据,并闭连接。; `! n( G2 N5 L
如果浏览器要向服务器再次发送请求,需要重新% G6 J. N5 B. N( X9 x6 [2 e/ [
建立连接。也就是说,浏览器与服务器之间的连接,* M Y' z/ W/ l$ w" V/ i
只能处理一次请求,然后立即关闭。这种通讯方式,+ a$ S( ]* J: O9 |" f& b9 m
可以让服务器以有限的资源为更多的客户端服务。: U& ]# m( O5 R$ I7 p
3)数据包的结构2 W7 H* J. |3 C- ]% }
a,请求数据包的结构0 z P5 b' N6 S7 E2 `9 l: E
第一部分:$ [' L8 c: ?! G1 |! [$ H1 z* z
请求行:* v* @& `* i# q8 ~& V
请求方式(get/post)
3 ^. n, `$ x. V/ w. q 请求资源路径 7 B$ E: t2 L& @. j/ D2 k% z
协议的类型与版本. R4 U# d0 l2 z" T6 e2 h1 Q
第二部分:9 Y' K( f! m0 g7 P& a, E4 ^
若干消息头:
9 p. c( p( T4 q" ?, o 消息头由w3c定义的一些有特殊含义的键值对,: @. l+ y# Y4 w" \+ N; d, h$ e
比如:content-type= text/html;
# S- T1 W" P' A8 n1 Y 服务器和浏览器都会遵守这些消息头的约定。 u4 ]6 Z' w! {8 q. { o1 U: U( [
消息头一般由服务器或者浏览器自动生成,但是* T' i. n* V, q+ x) ^, G/ i
,也可以通过编程的方式来生成。7 e3 ?9 a! g' v! C# y
第三部分:
0 b' G C& D, y! ^- A/ P$ X l 实体内容:
5 F, k4 f4 P3 f! Z 如果请求方式是post方式,请求参数及值会% A* |# J" { X* x. o
放在这儿。如果请求方式是get方式,请求参数
' u( w; \8 |6 V, U X/ f2 \ 与值是包含在请求资源路径里面。
% O) ^- j. E) W! _/ H 5 ?2 D8 }5 G+ b
b,响应数据包的结构
- Z- ]3 Z+ c* ?/ ]! G4 I/ ]+ Y 第一部分:
k y, z: F( e& ^" v: C( L+ M 状态行:
& r# d4 L1 V& N8 ] 协议的类型与版本3 u4 x$ Q( X- {
状态码(状态码是一个数字,不同的数字代表
" N1 ]! j! @% J3 O' ]7 H9 Z) h$ Z( w 不同的含义,比如
; w4 _) Q" n( \3 M* J& X# Z 500:系统错误(即程序代码有误)
9 ?) L4 H& U+ |0 I$ M) N# { 404:找不到资源(访问路径错误)
$ c, {$ z& I& e* A 200:正确)
: ^, x0 `/ s$ @$ y1 { 状态码的描述" t+ J M' s; z1 X# E8 f& d) r
第二部分:2 I( J% C p5 c; b: J
若干消息头:' `5 l/ y% l) b4 E L$ {: c
第三部分:
4 M- o# s0 x' I+ Z' s" Q 实体内容:% C4 G L2 D& j- Q6 T1 o
服务器返回给浏览器的处理结果。) w& B9 \+ G* _) n1 w- b
, n; ^* Y1 h( t @6 D; h% ~
|
|