该用户从未签到
|
1、http协议(了解)
3 o2 i8 [( Z# | 1)http协议是什么?: Z& g$ o; g+ F- m* a& A
超文本传输控制协议(hypertext transport protocal)。- O; ?8 R4 O0 T- f1 Y
是一种应用层协议,定义了浏览器(也可以是其它程序)5 W6 C# e6 D% J# N$ a/ _; V* i- m
与web服务器之间通讯的过程与数据的格式。
7 z( H9 v: `1 @# Z 2)通讯的过程8 {; C7 H- I4 g0 C
a,浏览器向服务器发送建立连接的请求。
2 f u: X) a* J0 l1 t b,浏览器先将请求数据打包,向服务器发送请求。6 c4 D# ^1 f/ y4 x5 i4 b/ l
c,服务器处理完请求,然后将数据打包,发送给浏览器。; B% U; `; X0 m" v
d,服务器发送完数据,并闭连接。
- t# q, a+ ~% b) d* r 如果浏览器要向服务器再次发送请求,需要重新) c& m7 J7 B2 l- s3 {# B: u
建立连接。也就是说,浏览器与服务器之间的连接,) D6 d* _) D O) u
只能处理一次请求,然后立即关闭。这种通讯方式,
/ V* d R4 t% t$ d! V' W- | 可以让服务器以有限的资源为更多的客户端服务。$ L4 V8 S9 ?3 w, C
3)数据包的结构
' @) \1 ~3 A3 H, q6 Y) ] a,请求数据包的结构
8 C1 D* [7 [! Z) H9 I 第一部分:
, d1 F; J* G" q5 b K 请求行:$ t3 @* E( T7 n$ y/ {
请求方式(get/post)
# P) ]- w0 f8 }, S+ l/ C$ z* p9 a 请求资源路径
# q2 Q; G5 @2 m$ @/ v 协议的类型与版本
+ |3 ]7 ^% l! h' s0 A 第二部分:
8 G; I% e/ P2 v0 V 若干消息头:$ s% r5 k5 o6 W, I! E. m( d
消息头由w3c定义的一些有特殊含义的键值对,% W; d5 A% C( R
比如:content-type= text/html;
, d1 X/ [% t; w4 y; N 服务器和浏览器都会遵守这些消息头的约定。# W4 g) g P0 O! Y% H) T' J
消息头一般由服务器或者浏览器自动生成,但是0 c2 U/ n! ]5 v8 Q7 O5 P
,也可以通过编程的方式来生成。
9 O6 b/ `6 F7 W2 s 第三部分:% Y: [6 r; {7 v* [
实体内容:' e+ ~3 R7 a( v3 `8 v( ^' D
如果请求方式是post方式,请求参数及值会
2 {: E5 W: {* P 放在这儿。如果请求方式是get方式,请求参数
) Y# S( F _# y8 ~- j( J 与值是包含在请求资源路径里面。/ ~+ G8 v( u; U/ k( O8 s7 h6 r
% H' @4 y! V+ z1 e4 D. Q b,响应数据包的结构3 P* z9 E; ]' s& L
第一部分:
- a. u* y6 o3 J" G 状态行:2 H# ]2 Y1 Z+ i% e0 R+ k4 L; M9 \. j
协议的类型与版本$ g8 K* t$ M7 r# a# N; C. a; y
状态码(状态码是一个数字,不同的数字代表
8 J6 z# B" v7 ^ 不同的含义,比如8 [: u |9 X9 r, `) K) i$ | H
500:系统错误(即程序代码有误)
1 F g/ z6 D& h& Y( ]' j5 w' K# A0 h 404:找不到资源(访问路径错误)
|6 r1 @4 m0 T 200:正确)
Q% P: W: M+ D" y I 状态码的描述; F, n+ t3 u( S
第二部分:
' d: D8 ~" i) m( _" V g. h 若干消息头:' V h0 Y' z/ i% Q6 o
第三部分:9 x6 V# n! q# C
实体内容:
: K# j+ y3 Z# i( } 服务器返回给浏览器的处理结果。% v+ O0 J2 d2 @
9 W6 _/ a% K- a8 f& S& t) W |
|