该用户从未签到
|
1、http协议(了解)* h% ^# T" l% e. v- v! W, h6 p
1)http协议是什么?# a% a9 ^1 ^; k+ S( b0 r
超文本传输控制协议(hypertext transport protocal)。4 q( \0 B/ U1 z. k: H) }6 m3 [0 T
是一种应用层协议,定义了浏览器(也可以是其它程序)
9 ?/ h- |5 H% X与web服务器之间通讯的过程与数据的格式。
f$ A m3 I, @0 N 2)通讯的过程
3 ~ C. [6 t! q# z a,浏览器向服务器发送建立连接的请求。. e4 R! u" r$ L l: ?: {
b,浏览器先将请求数据打包,向服务器发送请求。+ p9 W; n6 u# F' [# u, L7 t3 d
c,服务器处理完请求,然后将数据打包,发送给浏览器。
7 T0 H& i7 M3 C4 m d,服务器发送完数据,并闭连接。
5 Z _9 n5 P; Q/ L* b 如果浏览器要向服务器再次发送请求,需要重新
& d, X7 U( A7 V" E) P; x2 c 建立连接。也就是说,浏览器与服务器之间的连接,
+ t- e) I# L1 c( S B0 g 只能处理一次请求,然后立即关闭。这种通讯方式,
1 g7 z3 d' V, Y" K( s- |" U* ~3 B 可以让服务器以有限的资源为更多的客户端服务。
0 e$ z- Z. Q) G- ~ Z3 L4 [' _ 3)数据包的结构! ? W/ k9 Q! X
a,请求数据包的结构0 k; W7 s, G; z, q2 W3 P7 h
第一部分:
8 Q5 T& s/ P+ X2 a3 b$ f; M6 v0 | 请求行:8 ]7 H) T" f, V
请求方式(get/post)
# j* [/ u6 d. G 请求资源路径
# ~* a! n7 y1 W# o/ Q1 ^ 协议的类型与版本
& E2 Z! U3 e, i X0 R) A 第二部分:
5 j" j, j: U! ]/ L) n/ B 若干消息头:* ?6 m$ o1 ^1 a2 n. W- ?( g
消息头由w3c定义的一些有特殊含义的键值对,
0 g: [+ E+ w- P) { 比如:content-type= text/html;
9 p! w* Z# l' u0 F 服务器和浏览器都会遵守这些消息头的约定。
3 c/ y3 b+ S* T8 B3 f 消息头一般由服务器或者浏览器自动生成,但是
1 v2 c: V J: @- C: N# j& m2 j ,也可以通过编程的方式来生成。8 r- ]7 X8 u' z3 q
第三部分:
* M4 H0 E, [+ g4 i2 }4 o( k 实体内容:1 m& ]* Z7 m, S9 x6 ~+ S5 V: K
如果请求方式是post方式,请求参数及值会
; n: c! J8 l9 k Y 放在这儿。如果请求方式是get方式,请求参数
( k! V7 U) q! k/ F$ t 与值是包含在请求资源路径里面。
~9 _, \/ T. m # ^: o' h5 H: g- O4 i1 f
b,响应数据包的结构' [+ J& Y1 i( x
第一部分:
/ F' g# T; r+ ~; _2 d4 K/ ^ 状态行:
' z7 B0 P0 c2 p% F 协议的类型与版本
9 O, g% X/ y/ d6 v7 M/ [ 状态码(状态码是一个数字,不同的数字代表
/ n; q; h% c x# e 不同的含义,比如# x' @3 A. Q1 J' O# b" k; V
500:系统错误(即程序代码有误)! L" d I# B% Y
404:找不到资源(访问路径错误)
2 H/ H8 _, h5 e( w. H( M 200:正确)7 [9 W, g: ]; {. X2 A$ U( t
状态码的描述/ a" I: r" a9 l8 B) c
第二部分:5 ~& m. I* A9 z! ?
若干消息头:
& `/ t7 [' C/ M" b- n9 b! q* s 第三部分:7 \/ \! L: K. k4 i
实体内容:
# A$ t" e. G+ N2 c$ ]2 Q 服务器返回给浏览器的处理结果。
& ^& w4 e: ~+ i
" o3 }7 s2 h2 ]2 G9 b+ {6 I# L |
|