|
该用户从未签到
|
1、http协议(了解)" L2 [1 p6 B' P- ~
1)http协议是什么?6 @2 h. p& {4 _. F. q! R) V5 g6 H# s
超文本传输控制协议(hypertext transport protocal)。3 w7 E/ z% D, w% _/ A9 ` u. L6 ?/ y+ U
是一种应用层协议,定义了浏览器(也可以是其它程序)
9 c6 r, J8 ?7 x) v( c6 x与web服务器之间通讯的过程与数据的格式。* O9 H, h8 R4 m0 p3 A/ w5 \
2)通讯的过程2 D! _* B; r3 o+ f7 g+ K
a,浏览器向服务器发送建立连接的请求。- l( i. M$ |. L4 L0 p
b,浏览器先将请求数据打包,向服务器发送请求。0 A* t: v+ t: j3 w1 m2 u+ o
c,服务器处理完请求,然后将数据打包,发送给浏览器。
% m% @' W# @ G d,服务器发送完数据,并闭连接。
4 H5 A# `% `! S$ ~. d, ~) O 如果浏览器要向服务器再次发送请求,需要重新
2 k1 D* i: n+ L% W* V 建立连接。也就是说,浏览器与服务器之间的连接,: n) d; F: Q0 O0 n
只能处理一次请求,然后立即关闭。这种通讯方式,- Y& n' X; k. n3 k! w
可以让服务器以有限的资源为更多的客户端服务。! _5 |6 e. b$ g
3)数据包的结构0 B0 z0 }4 ^0 ~
a,请求数据包的结构) l* Q% s6 z' l0 @
第一部分:* D \' q2 A4 c
请求行:. x) _# ]4 ~: ~$ v1 r, J7 d4 V
请求方式(get/post)
, t; O1 t4 [# Y7 r1 l 请求资源路径 5 m! |3 w8 Q( e% y
协议的类型与版本- L7 r* @1 P9 A# S4 r% A
第二部分:0 m/ s' z( y3 w' S5 q( F
若干消息头:: }. k6 I7 U) U4 Q) I! c: g' Z
消息头由w3c定义的一些有特殊含义的键值对, Z( n3 }: W$ j& E
比如:content-type= text/html;0 Y! F* C: Y3 X/ C, ]/ @9 o' ?0 ?
服务器和浏览器都会遵守这些消息头的约定。$ Z& Y4 @8 l# l G5 ~- _6 d7 N
消息头一般由服务器或者浏览器自动生成,但是
& S% C/ O! ?5 a5 ~! D* o9 |( J' G ,也可以通过编程的方式来生成。9 F- T0 b$ Z p- T: b
第三部分:
4 @. P9 }/ P2 l. \ 实体内容:
3 u8 ]8 U7 n3 Y( h1 o$ G t 如果请求方式是post方式,请求参数及值会4 X; M, F, ]) ?# p# G- h
放在这儿。如果请求方式是get方式,请求参数$ \) u$ t. a1 D m1 j; D
与值是包含在请求资源路径里面。2 F* i% ?2 n. p' p
& O2 a$ J- ~3 p+ f$ a b,响应数据包的结构
* f3 P1 V# l6 `" g$ a 第一部分:
; D/ }. Z% X; z9 e1 ?# | 状态行:
% n" k; e7 D# J1 T0 D8 z 协议的类型与版本
' p6 \+ ~9 ]1 T* s1 C 状态码(状态码是一个数字,不同的数字代表
7 }8 r4 ]% R3 v% h8 U 不同的含义,比如
/ I" g% X6 l) ]0 W* x 500:系统错误(即程序代码有误)6 a9 E' ^& K6 t! _' n4 C# C: `4 w
404:找不到资源(访问路径错误)
% c7 H8 z1 @3 G& P 200:正确)
! `, }: ?5 N) b5 N3 d4 O 状态码的描述
. A8 d! i$ E& v% i 第二部分:
9 _: V6 h( z3 {0 q% q$ O, A) }! V 若干消息头:
- H+ t9 D- K3 }% x( D. K- a 第三部分:8 l. F+ S1 O( \0 q1 ]+ C2 N
实体内容:
! Q7 E2 \4 r( M7 O! I# N i 服务器返回给浏览器的处理结果。- H& K. K, o0 x$ \% Z; K" w
) O* ^" M E5 I7 C" b1 @
|
|