қ: қ
ұң қ: қ
ұ ұ WEB ғ ң ғқ құң ү қ, JAVA script VB script. ғқ үң ә ө, қғ ү қ. қғ ұ қ ғ ө ө , : , , қ қ ө .
: ғ ө WUI құғ ғ.
ұ ұ құ қ. ң ұ қ HTTP қ қ ұ. ұ CGI PERL script ғ ү өң. PERL ғ, HTTP ғ . ұ ғ ң ұқ, ғ ү ә ғ қ ғ қ ү .
ұ ү ұқ - (loop bask) , қ .
қ ұқ:
1. қ ғ ?
2. қғқ ?
3. Loop bask ө ә қ?
Ө 18
қ ө
:
1. ң ү ө қң қ қ .
2. ң ү қ ө қң қ қ ң .
ө ү .
Ә ұ: қ ө қң қ ә ғқ ң қ, ң қ қ ң қ. өқ ә - қ ұ қ, ң қғ .
ө ғ ү ү қ қ қ. қ ң ң ә қ құ ә қ . қ өқ ұ ө.
|
|
- ғ ң қ (, ғ .) ғ қ;
- ғ қ ө ң қ .
қ ү ұ , қң ә ә құ, ә ә ңғ әү қ қ. ң қ ң қ ә ң ұ , қ ө . ң құ ққ ққ.
ққ ө. ғ ә, ң қ ү ү , қ өң ә : қң ә ү ң қғ ө; ә/ үң қғ қ ғ; қ ү ү ; ң ә ә ө; ; қ қ ә ү ә.
. қ ә ұ құ ө () құ қ: (ң өұқ ), , ө (ққ ө ) ә . ғ : ө қ ә ү . ң ө ң үң ұғ қ .
27
ғқ қң ққ ө қ
HTTP ғқ қң ө қ қ. .
ң - HTTP () қғ. ұ ү TCP/IP ) қ ә TCP қ. ң қғ - 80: қ қ TCP - .
ң - ң ұ : ұң қ (Request header) ә ү (ә ) ұ ң ү. қ ү ә URL ә HTTP ұқ ө. ғ ү, ұ қ өң ғ қ .
|
|
Y ң - ң , қ (Response header) ұ. HTTP ұқ ә ө. ә ұ ұ ә ө. қ , ө ң .
ө ң - TCP/IP қң ү. Rcquesl header ү ү: GFT MyDoc.htm 11/1.1 Connection: Keep-Alive User-Agent: Moalla/3.0 <Win95: I) Host: 212.54.196.226 Accept: image gif. image x-bitmap, image/jpeg. *.*
ұ: MyDoc.htm - ұ құң ; GET- ұң үi; Host-IP--: Accept-ң . Request header ғ құң үpi: POST /Scripts ReadData.pl HTTP/I. I
Referer: Iittp://'2I2.54.196.226
Connection: Keep Alive
User-Agent: Mozilla/3.0 (Win95; I)
Host: 212.54.196.226
Accept: image/gif, image x-bitmap, image/jpeg, *.*
Content-type: application x-wwv-form-urlencoded
Content-length: 38
F irslName= Mary+ Ann&LastName= Sylvester
ұ: POST - ң ә. Referer- web- қң -, ұ қ құ ү : Content-type-ң ә; Content-length - (). FirstName. Last Name - өң ; Mary+, Sylvester ә ( "+" ң ғ).
Web- ң ұ , ғ TML-құ , Response header ғ .
Response header құ : HTTP/1.I 200 Server: Microsoft-IlS>4.0
Date: , 04 Apr 2005 00:26:34 GMT
Content-type: texlhtml
Set-Cookie: ASPSESSI()NIDFFFYXKFR=ACMNFUANKGBAMPBEGNGLEAB
<HTML>
{ HTML - }
ұ қ құғ."200 " -ұ ұ . ұ өң , қ қ ғ , ,"404 Object Not Found"; Content-type-құң (үpi). құ ө (ң HTML- , ө Content-type ә text/html ) ә қ ( ) ң ұ ү қ қ ө. (,jeg ), web- қ Response header- , ұ Content-type, image jpeg ғ . Sel-Cookie - қ ә . ұ ө ү қ ұң қ.
ққ ә ң HTTP ұ ң . ү:
POST htlp: localhosl HTTP 1.1
Accept: image/gif. irnage/x-xbitmap, image/jpeg. image'pjpeg. */* Accept-Language: ru
User-Agent* Mozilla/4.0 (compatible: MSIE 6.0: Windows NT 5.0) Host: localhost
Proxy-Connect ion: Keep- Al i ve paraml=I¶m2=2
ұң "POST" ө ө. ұ ө ң ә ө. ұ ұң қ ("paraml = l¶m2=2*,) қ .
|
|
HTML құ ә ө. , ұ ү, қ: < form ation= "http: locaIhost" method= "post">
<input type=hidden name="paraml" value="I">
<input type=hidden name="param2" value="2">
<input tp=submit></form>
ө, ү .
[1- ]=[ 1- ә]& [2- ]=(2- ғ]&...
"Get" ұ ә қ. ұң ө, - қ ұ, ә ү. ұ ө:
<form action="http: localhost/" method="get">
<input type= hidden name="paraml" value="l">
<input type=hidden name="param2" value="2">
<input type=submit></form>
HTTP ү ұ :
GT http://localhost/?paraml= I¶m2=2 HTTP I.I
Accept: image/git image, x-xbitmap, image/jpeg, image, pjpeg. */*
Accept-Language: ru
User-Agent: Mozilla/4.0 (compatible: MSIE6.0: Windows NT 5.0)
Host: localhost
Proxy-Connection: Keep-Alive
Kө ұғ "paraml = l¶m2=2" ү "?" , "http:// localhost/" қ. қ HTTP қ ө ө, ғ ө қ.
GET әң : қ құ ө. : ұ ә (POST ә қғ) ң ұғ қ ұ құң - ұғ . ә, ұ ұ -, ққ ү қ 414 Request-URI Too Long ғ.
қ ұқ:
- HTTP қң ө қ қ ң ұ?
- HTTP қң ө қ Request header қң ғ қ?
- HTTP қң ө қ Response header қң ғ қ?
28-29.
ғқ қң ө қң ққ
қ ғң ө қ . қ ғң ө қ ң (Common Gateway Interfase) ққ. Common Gateway Interfase (CGI) ң .
CGI- (қ ғ) ққ қ қғ қ. HTTP- ұқ қ қ, ғ қ ұ ғ қ . ө CGI ғ. CGI ң ққ:
|
|
REQUEST_METHOD-HTTP ұң ә қғ ғ ң . ғ ө ұ ү HTTP GET ә POST ә . ң ғ, GET ә,ұ URL-ң ө (, http://www.localhost/myscript.cgi?a=request), POST ә қғ HTTP-қ (GET ә қ ). ә, CGI ү: GET ә қ QUERY_STRING , POST ә ү STDIN- .
: REQUEST_METHOD=GET
QUERY_STRING GET ә қ . қ , URL- қ қ (ң қ). Urlencode ә : URL- қ + ң , қ ә ғ ү ң %hh , ұғ hh-ңң қ . қ, ө & , қ өң қ ү қ.
: QUERY_STRING=name=user+chef&age=20&hobby=games
CONTENT_LENGTH ғ қң ұғ. POST ә қ ү (STDIN) CONTENT_LENGTH ү , ң өң . Ә POST ә ү қғ ә . ә қғ қ қ, GET ә URL ұғ .
: CONTENT_LENGTH=31
CONTENT_TYPE қ ң ү (ғ ғ ң ү application/x-www-from-urlencoded қ).
GATEWAY_INTERFASE-CGI ң ұқ
: GATEWAY_INTERFASE=CGI/1.1
REMOTE ADDR қ , ққғ ң IP -.
: REMOTE_ADDR=139.142.24.157
REMOTE_HOST-ұ, қғ ң , қ, қ ғ REMOTE_ADDR қ IP--.
: REMOTE_HOST=idsoftware.com
SCRIPT_NAME-қ қғ ң . қ ү SCRIPT_FILENAME қ.
: SCRIPT_NAME=/cgi/guestbook/cgi
SCRIPT_FILENAME-ұ ң . қ , ғ қ .
: SCRIPT_FILENAME=/home/public/cgi/guestbook/cgi
SERVER_NAME-ң ө ғ (www/micrisofy/com қ), IP - ү (, 157,151,74,254 ү).
: SERVER_NAME=www/tksite/edu
SERVER_PORT-ң -, ү . -ң ө 80, ғ қ ү.
: SERVER_PORT=80
SERVER_PROTOCOL- ң ұқ
: SERVER_PROTOCOL=HTTP/1.1
SERVER_SOFTWARE-ң ғқ қ
: Apache/1.0
ғ ө қ қ қғ ң қ . CGI- ққ ұ ғ ү . Ә ү . ʳ қ ұ қғ ң REQUEST_METHOD ә қ ә қ қ қ get post? ә ә ө .
|
|
ʳ қ қ . ғ өң ү .
GET ә ү өң.
GET ә ү өңң қ ү :
QUERY_STRING ң ә қ, ң ә . ә + , қ 128- % . қ .
-ә құ қ.
GET ә ғғ ғ . QUERY_STRING ғ ң ә ү: 1=ә1&2=ә2&3=ә3...&N=әN
ұғ N-NAME ң ә, ң қ ң . ә N Value ң ә . N . QUERY_STRING ғ ң қ қ өң. қ қ өң . ұ URL- қ.
ʳ , қ =ә ұ қ. ұ ң қ ә ү .
POST ә ү өң
ʳ POST ә өңң қ ұ:
CONTENT_LENGTH ң ә қ, ң ә . ә + , қ 128- % . қ .
-ә құ қ.
STDIN ғ қ . CONTENT_TYPE қғ ң құ application/x-www-form-uriocoded ә , STDIN ғғ .
POST ә stdin ғ қ ү . STDIN ғ ң ө CONTENT_LENGTH ө.
қ ғ ң ө қ қ.
ғ . ң ә қ, CGI ғ өң STDOUT ғ . ұ HTML-құ ү ң ү , ұ қ қ ғ . ңғ әң ғ : cgi- ә қ ү қ HTTP қ ғ .
ғ қ. Ә, ғ ү ә ғ . қ ң ү қ ә ұ . қ құ ғқ, ң ө ә қ қ . ғ , өң ө, ғ ғ ү қ ғ ә . ә ә ө: қ (General- Header) ә ң қ (Entity - Header), қ қ (Response - Header) ұ.
ғ қ . HTTP қ ғ ә ұ ә ( ұ) қ. әң , ң , қғ . Қ қ CGI ң ү қ:
қ | |
Content-type | Қғ құң MIME-ү |
Location | құң ө , құқ . ғ қ қ ұ. |
Status | HTTP , ғ . : nnn xxxxx, ұ nnn-ү - ә xxxxx- |
Ққ қ ғ . ғ : HTTP/version ұқ, Status Code ә ң ү ә Status Phrase ү ә ұ. , ә ұ ғ ғ. ң ң қғ ғ.
ң қ :
1. 1:ә қ қ, қ қғ қ;
2. 2: ә :қ қ ә өң;
3. 3: қ қ қ қ ;
4. 4: ң қ қ ұ өң. қ өң қ 4 қ, қ ;
5. 5: Web ң қ ұ ғ қғ .
HTTP ң :
ғ | |
Ok | |
Post ә | |
қ қ | |
Get HEAD қ | |
қ , қ қ | |
ү ғ | |
қ қ | |
қ ө | |
қ | |
қғ қ | |
ө ө қ | |
ғ ұқ қ | |
ү ұ ә қ | |
ң ұ ү ұқ қ | |
қ ұқ қ | |
ң қ | |
Ә ғ қ | |
ұғ ң ү ө | |
ұқ қ/ң - | |
/ң - |
Status CGI өң ғ қғ ү . ұ , 200 Ok ө.
:
Status:404 Not found
қ қ . ғ .
, :
HTTP/1.0 200 Ok
Server:NCSA/1.0a6
Content type:text/html
қң ғ ғ .
ұ:200 қң ғ ғ , . : Content - type: text/html
, ү .
қ ( қ ), ң . ʳ өң ң , ң қ . ғ, ң өң, ү .
ұ ғ , қ, ң ғ ө , ұң өң ғ . ұң ұ ө ғғ ә қ ң қң . қ ә қғ қ қ. өң CGI ү ғқ, құң қ ү ғ қ . , өң ә ғ ң ғ қ ғң .
әң ғ. Қ CGI ғ қ, қ ә HTML ә ұ. ү қ қ қғ қ , ә қ қ ғ .
қ қ ғ , ә ғ ғ . ң қ ң ө ғ , ң қ. ғ үң қ құ қ ә қ ң ң ұ қ қ ү. ң ө ғ ү , ғ қ ү . қ ұ ғ ғ қ ү ү ұ .
қ ұқ:
1. CGI ң қ қ ұ?
2. қ ғң ө қ get ә ү қ өң?
3. қ ғң ө қ post ә ү қ өң?
4. қ ғ өң ұң ң қ?
5. қ ғ ө қ post ғ қ қ қ ә?