|
该用户从未签到
|
1、http协议(了解)
5 g& L1 ?5 @" k9 w 1)http协议是什么?
* \& E7 W2 u4 e/ q) I/ F4 r8 c 超文本传输控制协议(hypertext transport protocal)。0 X, g; Q8 v) I D! \7 D6 o; W
是一种应用层协议,定义了浏览器(也可以是其它程序) K( J/ M0 C2 Y$ A1 _4 [; r* t
与web服务器之间通讯的过程与数据的格式。
6 Y" R5 m/ L G7 \+ l 2)通讯的过程 ~& w8 a7 L) _* \' Y7 G1 z
a,浏览器向服务器发送建立连接的请求。
8 l$ s. l4 m+ e( _8 } b,浏览器先将请求数据打包,向服务器发送请求。
1 F! @5 w+ N. `9 o; G, p c,服务器处理完请求,然后将数据打包,发送给浏览器。* g' [0 `& I9 ?2 N0 W; c/ F; t8 g3 q
d,服务器发送完数据,并闭连接。
6 c# @1 N4 [. D 如果浏览器要向服务器再次发送请求,需要重新
+ ]) P4 D; i9 a: B1 c 建立连接。也就是说,浏览器与服务器之间的连接," M8 L: N& |# }- I" h$ ~# T- C
只能处理一次请求,然后立即关闭。这种通讯方式,
9 L" z3 e) c' @1 h/ V 可以让服务器以有限的资源为更多的客户端服务。3 y' q( @$ q5 `, }/ F+ ]1 S
3)数据包的结构
/ d/ @9 C# `1 H% {; O a,请求数据包的结构
7 X' @' L5 e9 ?2 p N 第一部分:
( G6 x: d3 Q+ r/ r6 i 请求行:9 E3 ]% c1 `: p
请求方式(get/post) : d5 e3 o( i+ d- f
请求资源路径 , ?/ O& ?& S2 J i' \
协议的类型与版本2 M& g. F0 r! ]) H7 B1 k+ y' R* m, ]
第二部分:
/ X* k9 u. M5 t 若干消息头:4 P# G9 [. T6 g: J7 u5 V
消息头由w3c定义的一些有特殊含义的键值对,
2 n6 q" Q% |8 n 比如:content-type= text/html;& W+ ], v# @ y
服务器和浏览器都会遵守这些消息头的约定。) x2 S" b5 V: H E3 h( x m, N/ N6 `% k
消息头一般由服务器或者浏览器自动生成,但是
5 V( N1 \ R- W2 u0 J5 \ ,也可以通过编程的方式来生成。
* H. H5 T: y5 g |& M 第三部分:& P& a) g$ I! e: `5 [/ l7 A
实体内容:
2 K. T. M0 x. B/ O, Y 如果请求方式是post方式,请求参数及值会
. R) J) f1 p6 j9 q" ?: C" T% Y1 Y 放在这儿。如果请求方式是get方式,请求参数
4 _. K, w* b! H. m 与值是包含在请求资源路径里面。: q) x) t I% k) C: }/ M
0 H, t' i5 u: s! M- E8 l b,响应数据包的结构
; ^8 O1 b+ U5 f# q6 W& B7 v7 f2 c 第一部分:% c# l+ m+ i# a2 h q& h+ Q+ M. U* C9 C
状态行:8 `% G7 |& L. B3 A+ @& W' b: K: h0 C
协议的类型与版本
) C2 ^/ j( [9 y1 M( D 状态码(状态码是一个数字,不同的数字代表* d( k, h4 S! e; p5 `* t
不同的含义,比如
6 s3 e, w7 l9 F$ b* s 500:系统错误(即程序代码有误)2 ^" R$ p; n. ?& V9 r. ]
404:找不到资源(访问路径错误)6 ^1 j7 \# c& W% K: A
200:正确)
: j" J3 `& ?2 p! W1 N 状态码的描述
% Q$ z; J |: K 第二部分:+ w% M' w4 M- `' _* D
若干消息头:
6 ~$ \/ R% y5 E8 D, J0 O+ I) k 第三部分:; p9 R1 R0 d* w: s1 G/ ]* \
实体内容:
5 U" z2 s4 Z# ` m1 X& ] 服务器返回给浏览器的处理结果。
; I' g- i& ?/ W8 F) y
{- R4 r- }0 g5 F |
|