|
该用户从未签到
|
1、http协议(了解)1 y1 U2 c$ p7 h5 r; f
1)http协议是什么?/ b s. }/ }6 V4 P5 z$ h+ ~6 F8 |# f9 @ ]
超文本传输控制协议(hypertext transport protocal)。+ M/ S) u3 O9 g+ X9 _- p; e
是一种应用层协议,定义了浏览器(也可以是其它程序)
! [( z+ i. g2 _: @$ F6 F. Q与web服务器之间通讯的过程与数据的格式。9 o6 G0 [9 V5 j- Y0 t) K2 I
2)通讯的过程/ C' c+ o5 e4 Z
a,浏览器向服务器发送建立连接的请求。8 m7 E+ e# p0 I7 }- k, W
b,浏览器先将请求数据打包,向服务器发送请求。9 n+ y+ {; P5 v! k1 [
c,服务器处理完请求,然后将数据打包,发送给浏览器。
& B: `: u3 A2 X% N d,服务器发送完数据,并闭连接。
) i) Y2 V7 B( l& d$ g6 ]8 ^% B2 E 如果浏览器要向服务器再次发送请求,需要重新
, |5 |2 Y% E$ F: i' I 建立连接。也就是说,浏览器与服务器之间的连接,5 h# ^4 Z e9 d# V( }. a
只能处理一次请求,然后立即关闭。这种通讯方式,
: e; T$ c8 a7 _- M* J" @ 可以让服务器以有限的资源为更多的客户端服务。( d+ K9 q d# R0 Z
3)数据包的结构2 c7 |$ T- K6 S2 g, d: O& S2 B3 U, {
a,请求数据包的结构
- N& ~5 C! m6 ]' f+ E" Y2 Z 第一部分:4 M8 I: B# R- f8 M" k) \% S
请求行:2 g2 t) `% k/ T6 C
请求方式(get/post) + Q9 |5 w) f# [4 W# s0 {
请求资源路径 2 ?: g$ d* H" k0 Z( P% _3 X
协议的类型与版本
2 \+ Q% \: l+ u( `8 L* ]; i8 F 第二部分:8 Q, o, o* A) R7 o F
若干消息头:2 p" c( l2 E( C$ Z2 ~
消息头由w3c定义的一些有特殊含义的键值对,9 ^, F" U$ G& P: i$ L+ D* F
比如:content-type= text/html;% ^: l4 s7 a" C" W
服务器和浏览器都会遵守这些消息头的约定。" z& e# J9 Z( p% @
消息头一般由服务器或者浏览器自动生成,但是
r1 V! y/ p8 y o% m) Y0 Z3 W/ E. e ,也可以通过编程的方式来生成。
; [5 {/ \" _ S' a4 {. g 第三部分:- J# y1 G' B0 X* }* j' v9 l5 m& H
实体内容:
; X- i6 w* e4 h6 `# ^2 X+ j 如果请求方式是post方式,请求参数及值会: b! ^( `! X' g" ^- ]
放在这儿。如果请求方式是get方式,请求参数
' `& r" ~$ T/ c0 `$ G0 Z 与值是包含在请求资源路径里面。3 Z2 }7 }/ A+ H5 N& K, x
/ ?9 M! q+ G: k0 x/ l# ]# o; Y b,响应数据包的结构
. U; E4 e8 l8 c. W; d9 C 第一部分:3 m/ q: I% ?4 t3 {2 F- A8 D$ ~3 {3 d
状态行:
# X6 R1 D1 H. k1 V5 F) g# c: l$ b 协议的类型与版本8 c- e5 O. O: T5 {* {
状态码(状态码是一个数字,不同的数字代表
( V, b+ @- n) n3 P- x 不同的含义,比如
; ?6 C" F1 [0 ~3 r/ \4 \. ^4 Q( \+ X9 K 500:系统错误(即程序代码有误)
+ ~: E7 M" T: \' K! q 404:找不到资源(访问路径错误)
5 p6 H' l6 ^+ V$ L' y 200:正确)/ T5 w" o- s) ^. |- {& O
状态码的描述0 e: C' Q3 H# a; e2 W% d
第二部分:
2 G# Q+ \8 R3 k ~" n! Y 若干消息头:
; ~* s3 d' s, K2 s) J% z0 o% w 第三部分:$ O$ I& E" q* K0 O$ F/ Q5 ^( C
实体内容:6 F, z' T [$ p! r. h; Y& U n
服务器返回给浏览器的处理结果。
: Z2 l( y5 @- Q
; P6 V, U6 [* y1 u, H# C% L |
|