HELP! * GREY=local Full HTML
for
CGI ±à³Ì¼ò½é
Given by Nancy J. McCracken at ECS400 Senior Undergraduate Course
on Spring Semester 1996. Foils prepared 2 June 1996
ÕªÒª
* ÄÚÈÝË÷Òý
See also color IMAGE
- CGI Ö¸ Common Gateway Interface (¹«¹²Íø¹Ø½Ó¿Ú)
, ËüÊÇÆäËü³ÌÐòºÍϵͳʹÓúÍ
HTTP ¿Í»§ºÍ·þÎñÆ÷ͬÑùµÄÐÒéµ½
HTTP Web ÐÒéµÄ½Ó¿Ú.
- ÔÚÕâÒ»²¿·Ö½«°üÀ¨µÄÄÚÈÝÓÐ:
- ´Ó web Ò³Ïò CGI ÃèÊö´«ËÍÐÅÏ¢
- ÔÚ·þÎñÆ÷Ò»·½´¦ÀíÐÅÏ¢²¢Ïò
web ¿Í»§·µ»Ø¸ñʽ»¯µÄ
web Ò³
- Ò»¸öʹÓà Perl ×÷ΪÃèÊöÓïÑÔµÄÀý×Ó
- ÆäËû CGI ¹¦Äܵļòµ¥ÃèÊö
- ²Î¿¼ÎÄÏ×:
- HTML and CGI Unleashed, John December and Mark GInsburg, chapters
19, 20 and 21, Sams.net Publishing.
- CGI Programming on the World Wide Web, Gundavaram, O'Reilly &
Associates.
- The CGI Book, William Weinman, New Riders Publishing.
- Web documents.
CGI ±à³ÌµÄÈ«²¿ÄÚÈÝË÷Òý
1 CGI ±à³Ì
2 CGI ±à³Ì
3 ¿Í»§£¬·þÎñÆ÷ºÍCGIÃèÊöÖ®¼äµÄÊý¾ÝÁ÷
4 ¿Í»§£¬·þÎñÆ÷ºÍCGIÃèÊöÖ®¼äµÄÊý¾ÝÁ÷
5 form¾ÙÀý£º
Hello, World!
6 ÓÃPerlÓïÑÔ±àдµÄ
CGI ³ÌÐò¾ÙÀý£º
Hello, World!
7 ͨ¹ý»·¾³±äÁ¿Ïò
CGI ³ÌÐò´«µÝÊý¾Ý
8 ÁíÒ»ÖÖͨ¹ý»·¾³±äÁ¿´«µÝÊý¾ÝµÄ·½Ê½
9 »·¾³±äÁ¿µÄÆäËûÐÅÏ¢
10 ×÷Ϊ±ê×¼ÊäÈëÏò
CGI ³ÌÐò´«µÝÊý¾Ý
11 ÓÃÀ´´Óweb
form ÖжÁÈ¡ÊäÈëµÄ
Perl ×Ó³ÌÐò - µÚÒ»²¿·Ö
12 Perl ×Ó³ÌÐò
- µÚ¶þ²¿·Ö
13 CGI ³ÌÐòÊä³ö£º¶Ô
web ·þÎñÆ÷µÄÏìÓ¦
14 һЩ CGI ±à³ÌµÄʵÓü¼ÇÉ
15 ÆäËûʵÓü¼ÇÉ
Ŀ¼
ÕªÒª
HELP! * GREY=local
HTML version of LOCAL Foils prepared 2 June 1996
½ºÆ¬ 1: CGI ±à³Ì
From Introduction to CGI Programming ECS400 Senior Undergraduate
Course -- Spring Semester 1996. * See
also color IMAGE
È«²¿ÎļþĿ¼
- Nancy McCracken
- ECS 400, Software Technologies for the WWW
- 3-234 Center for Science and Technology
- Syracuse University
- 111 College Place
- Syracuse NY 13244-4100
- February 26, 1996
- Click here for body text
HELP! * GREY=local
HTML version of LOCAL Foils prepared 2 June 1996
½ºÆ¬ 2: CGI ±à³Ì
From Introduction to CGI Programming ECS400 Senior Undergraduate
Course -- Spring Semester 1996. * See
also color IMAGE
È«²¿ÎļþĿ¼
- CGI Ö¸ Common Gateway Interface (¹«¹²Íø¹Ø½Ó¿Ú)
, ËüÊÇÆäËü³ÌÐòºÍϵͳʹÓúÍ
HTTP ¿Í»§ºÍ·þÎñÆ÷ͬÑùµÄÐÒéµ½
HTTP Web ÐÒéµÄ½Ó¿Ú.
- ÔÚÕâÒ»²¿·Ö½«°üÀ¨µÄÄÚÈÝÓÐ:
- ´Ó web Ò³Ïò CGI ÃèÊö´«ËÍÐÅÏ¢
- ÔÚ·þÎñÆ÷Ò»·½´¦ÀíÐÅÏ¢²¢Ïò
web ¿Í»§·µ»Ø¸ñʽ»¯µÄ
web Ò³
- Ò»¸öʹÓà Perl ×÷ΪÃèÊöÓïÑÔµÄÀý×Ó
- ÆäËû CGI ¹¦Äܵļòµ¥ÃèÊö
- ²Î¿¼ÎÄÏ×:
- HTML and CGI Unleashed, John December and Mark GInsburg, chapters
19, 20 and 21, Sams.net Publishing.
- CGI Programming on the World Wide Web, Gundavaram, O'Reilly &
Associates.
- The CGI Book, William Weinman, New Riders Publishing.
- Web documents.
HELP! * GREY=local
HTML version of LOCAL Foils prepared 2 June 1996
½ºÆ¬ 3: ¿Í»§£¬·þÎñÆ÷ºÍ
CGI ÃèÊöÖ®¼äµÄÊý¾ÝÁ÷
From Introduction to CGI Programming ECS400 Senior Undergraduate
Course -- Spring Semester 1996. * Critical
Information in IMAGE
È«²¿ÎļþĿ¼
- ¿Í»§°´ÕÕ URL ±ê×¼ºÍ
¸ñʽ»¯µÄMIME Í·Ïò·þÎñÆ÷·¢ËÍÇëÇó.
- ·þÎñÆ÷½âÎö¸ÃÇëÇó²¢¾ö¶¨ÈçºÎ´¦Àí:
- ¶ÔÓÚ FTP ºÍÆäËû·þÎñ£¬·þÎñÆ÷·¢Ò»¸öÊʵ±µÄ²Ù×÷ϵͳÇëÇóºÍÏìÓ¦¡£
- ¶ÔÓÚ HTTP ·þÎñ,
Ëü¼ìË÷ URL ÃüÃûµÄÎļþ£¬²¢ÇÒ¸ù¾ÝÎļþÀàÐ;ö¶¨ÈçºÎ´¦Àí.
Ò»¸ö html, mpeg, au, »ò ÈκξßÓпÉʶ±ðÎļþÀ©Õ¹ÃûµÄÎļþ¶¼½«±»Ö±½Ó´«Ë͸ø¿Í»§£¬²»×öÈκÎ
´¦Àí(¶ÔServer Side Includes - SSI
µÄÇé¿öÀýÍâ)
- Èç¹û¸ÃÎļþÊÇ¿ÉÖ´Ðе쬷þÎñÆ÷°ÑËüµ±×÷CGI³ÌÐòÀ´Ö´ÐÐ.
·þÎñÆ÷»á´¦ÀíÍ·ÐÅÏ¢ÒÔ»·¾³±äÁ¿»òÕß
STDIN £¨±ê×¼ÊäÈ룩Á÷µÄ·½Ê½´«µÝÖ´ÐвÎÊý¸øCGI³ÌÐò.
HELP! * GREY=local
HTML version of LOCAL Foils prepared 2 June 1996
½ºÆ¬ 4: ¿Í»§£¬·þÎñÆ÷ºÍ
CGI ÃèÊöÖ®¼äµÄÊý¾ÝÁ÷
From Introduction to CGI Programming ECS400 Senior Undergraduate
Course -- Spring Semester 1996. * Critical
Information in IMAGE
È«²¿ÎļþĿ¼
- CGI ³ÌÐò½âÎöÀ´×Ô·þÎñÆ÷µÄÊäÈ룬²¢ÇÒ±ØÐë²úÉúÒ»¸öÏìÓ¦
- ¾ÍËãûÓÐÊý¾ÝÐèÒª·¢»Ø£¬CGI
³ÌÐòÒ²±ØÐë·¢Ò»¸ö´íÎó»òÕß¿ÕÏûÏ¢£¬ÒòΪ
http Á¬½ÓÕâʱÈÔÈ»´¦ÓÚ´ò¿ª×´Ì¬£¬±ØÐëÓÉ·þÎñÆ÷¹Ø±Õ.
CGI ³ÌÐò½«¸ø·þÎñÆ÷·¢ËÍÒ»¸öÍ·£º
- Èç¹ûÍ·µÄÀàÐÍÊÇ
"Location"£¬·þÎñÆ÷½«¿Í»§·¢ËÍÖ¸¶¨µÄÎļþ.
- Èç¹ûÍ·µÄÀàÐÍÊÇ
"Content-type", ·þÎñÆ÷½«°ÑËùÓеÄÊý¾Ý·¢Ëͻؿͻ§¡£ÕâÓ¦¸ÃÊÇÒ»¸ö¸ñʽ»¯µÄ
html Ò³.
- µ± CGI ³ÌÐò½áÊøÊ±£¬
·þÎñÆ÷¹Ø±ÕÁ¬½Ó.
HELP! * GREY=local
HTML version of LOCAL Foils prepared 2 June 1996
½ºÆ¬ 5: form ¾ÙÀý:
Hello, World!
From Introduction to CGI Programming ECS400 Senior Undergraduate
Course -- Spring Semester 1996. * Critical
Information in IMAGE
Full
HTML Index
- This ±¾Àý×Ó°üº¬Ò»¸ö¼òµ¥µÄ
form , ËüÖ»ÓÐÒ»¸ö
submit °´Å¥, ÓÃÒÔ¼¤»î
CGI ³ÌÐò. ×¢Òâ, ÔÚÕâ¸öÀý×ÓÖÐûÓдÓ
form ·¢µ½CGI ³ÌÐòµÄÊý¾Ý.
HELP! * GREY=local
HTML version of LOCAL Foils prepared 2 June 1996
½ºÆ¬ 6: CGI ³ÌÐò (Perl
ÓïÑÔ): Hello, World!
From Introduction to CGI Programming ECS400 Senior Undergraduate
Course -- Spring Semester 1996. * Critical
Information in IMAGE
Full
HTML Index
- Õâ¸ö Perl ³ÌÐòÒÔ
HTML ¸ñʽ·µ»ØÊä³ö.
·þÎñÆ÷°ÑËü·µ»Ø¸øä¯ÀÀÆ÷,
×÷Ϊһ¸ö web Ò³ÏÔʾ.
- ·µ»Ø html Êä³öÊǺܼòµ¥µÄ,
ÒòΪ·þÎñÆ÷ºÍä¯ÀÀÆ÷»á´¦Àí¶Ô
MIME ¸ñʽµÄÐÅÏ¢½øÐбàÂëºÍ½âÂë.
¸´Ôӵĵط½ÔÚÓÚ´Ó
form ·¢ËÍÎı¾¸ø
CGI ³ÌÐò; ÓжàÖÖ·½·¨ÊµÏÖÕâÖÖ·¢ËÍ,
CGI ³ÌÐò±ØÐë¶ÔÊÕµ½µÄÏûÏ¢½âÂë.
HELP! * GREY=local
HTML version of LOCAL Foils prepared 2 June 1996
½ºÆ¬ 7: ͨ¹ý»·¾³±äÁ¿Ïò
CGI ³ÌÐò´«ËÍÊý¾Ý
From Introduction to CGI Programming ECS400 Senior Undergraduate
Course -- Spring Semester 1996. * See
also color IMAGE
Full
HTML Index
- »·¾³±äÁ¿ QUERY_STRING
ºÍ PATH_INFO ÓÃÓÚÏò
CGI ³ÌÐò´«ËÍÊý¾Ý
- Óм¸ÖÖ²»Í¬µÄʵÏÖ·½Ê½.
- ÓÃÒ»¸öÆÕͨµÄ
HTML Á´´«ËÍÊý¾Ý:
- URLÖеÚÒ»¸öÎʺźóÃæµÄËùÓÐÄÚÈݱ»·ÅÔÚ
QUERY_STRING ±äÁ¿ÖÐ:
- <a href="http://www.some.box/sign.pl?passed-argument">
Click here to run the program. </a>
- QUERY_STRING ±äÁ¿µÄÖµÊÇ
"passed-argument".
- ÔÚ·¾¶ÃûÖпÉÖ´Ðв¿·ÖÒÔºóµÄÄÚÈݱ»·ÅÔÚ
PATH_INFO ±äÁ¿ÖÐ:
- <a href="http://www.some.box/walk.pl/direction=north/speed=slow">
Start the program. </a>
- PATH_INFO ±äÁ¿µÄֵΪ
"direction=north/speed=slow".
- ÓÐЩËÑË÷ÒýÇæ(search
engine)ÒªÇóʹÓÃÕâÖÖ»úÖÆ´«ËͼìË÷¹Ø¼ü×Ö,
ÀýÈç WAIS.
HELP! * GREY=local
HTML version of LOCAL Foils prepared 2 June 1996
½ºÆ¬ 8: ͨ¹ý»·¾³±äÁ¿´«µÝÊý¾ÝµÄÁíÒ»ÖÖ·½·¨
From Introduction to CGI Programming ECS400 Senior Undergraduate
Course -- Spring Semester 1996. * See
also color IMAGE
Full
HTML Index
- ÔÚ form ÖÐʹÓà "get"
·½Ê½´«ËÍÊý¾Ýʱ,
Óû§¼üÈëµÄËùÓÐÊý¾Ý·ÅÔÚ
QUERY_STRING ±äÁ¿ÖÐ:
- <form method=get action="http://www.some.box/name.pl">
- Type your first name <input name="First Name"><br>
- Type your last name <input name="Last Name"><br>
- <input type=submit value="submit">
- </form>
- Èç¹ûÓû§¼üÈë
"Winona" ºÍ "Ryder" ×÷Ϊֵ,
»·¾³±äÁ¿ QUERY_STRING
½«¾ßÓбàÂë¸ñʽµÄÖµ:
"First+Name=Winona&Last+Name=Ryder".
- ÏÂÃæµÄ Perl ³ÌÐò½«ÔÚ
web ¿Í»§´°¿ÚÖÐÏÔʾÉÏÎÄÖеÄ×Ö·û´®
( ²»º¬³£¹æµÄ html
񈬀):
- #!/usr/local/bin/perl
- print "Content-type: text/html\n\n";
- print "You typed \"$ENV{QUERY_STRING}\" in the input
boxes\n";
- ½¨Òé±ÜÃâʹÓÃ"Get"
·½Ê½, ÒòΪ̫³¤µÄÊäÈ뽫¶ªÊ§Êý¾Ý!
HELP! * GREY=local
HTML version of LOCAL Foils prepared 2 June 1996
½ºÆ¬ 9: »·¾³±äÁ¿µÄÆäËüÐÅÏ¢
From Introduction to CGI Programming ECS400 Senior Undergraduate
Course -- Spring Semester 1996. * Critical
Information in IMAGE
Full
HTML Index
- Web ·þÎñÆ÷Ò²Ìṩ¹ØÓÚÓû§ºÍ·þÎñÆ÷µÄÐÅÏ¢,
°üÀ¨·¢³öÇëÇóµÄä¯ÀÀÆ÷ÀàÐ͵È.
- CGI³ÌÐò¿ÉÒÔʹÓõĻ·¾³±äÁ¿ÓÐ:
- GATEWAY_INTERFACE REMOTE_HOST
- SERVER_NAME REMOTE_ADDR
- SERVER_SOFTWARE AUTH_TYPE
- SERVER_PROTOCOL REMOTE_USER
- SERVER_PORT REMOTE_IDENT
- REQUEST_METHOD CONTENT_TYPE
- PATH_INFO CONTENT_LENGTH
- PATH_TRANSLATED HTTP_FROM
- SCRIPT_NAME HTTP_ACCEPT
- DOCUMENT_ROOT HTTP_USER_AGENT (browser)
- QUERY_STRING HTTP_REFERER
HELP! * GREY=local
HTML version of LOCAL Foils prepared 2 June 1996
½ºÆ¬ 10: ×÷Ϊ±ê×¼ÊäÈëÏò
CGI ³ÌÐò´«µÝÊý¾Ý
From Introduction to CGI Programming ECS400 Senior Undergraduate
Course -- Spring Semester 1996. * See
also color IMAGE
Full
HTML Index
- ½¨ÒéʹÓà METHOD=POST
µÄ form , ÕâÑù¿ÉÒÔͨ¹ý
STDIN °²È«µØ´«µÝÈÎÒâÊýÁ¿µÄÊý¾Ý.
- »·¾³±äÁ¿ CONTENT_LENGTH
ÉèΪ·¢ËÍÊý¾ÝµÄ×Ö·ûÊý,
±äÁ¿ CONTENT_TYPE ±»ÉèΪ
"application/x-www-form-urlencoded".
- Êý¾Ý±»·þÎñÆ÷°´ÈçϹæÔò±àÂë:
- ¸÷¸öÓòÓà &
·Ö¸ô.î.
- ÔÚÿ¸öÓòÖÐ,
Óà = ·Ö¸ôÓòÃûºÍÖµ.
- Ò»¸öÓòÖеĿոñ±»×ª»»Îª
+.
- ÆäËüÌØ¶¨µÄ¼üÅÌ×Ö·û±»±àÂëΪ
%[Ê®Áù½øÖÆÖµ]
- ÀýÈç, ! ±»±àÂëΪ
%3D.
HELP! * GREY=local
HTML version of LOCAL Foils prepared 2 June 1996
½ºÆ¬ 11: Perl ×Ó³ÌÐò:
´Ó web form ÖжÁÈ¡ÊäÈë
- Ö®Ò»
From Introduction to CGI Programming ECS400 Senior Undergraduate
Course -- Spring Semester 1996. * Critical
Information in IMAGE
Full
HTML Index
- ±¾×Ó³ÌÐòÊÊÓÃÓÚGET
»ò POST ·½Ê½, ´ÓformÖлñÈ¡Óû§ÊäÈëµÄ×Ö·û´®,
¸³¸øÊýÖµ±äÁ¿"$in".
È»ºó°Ñ¸Ã×Ö·û´®·Ö½âµ½Êý×é
"@in"Öеĸ÷¸öÔªËØÖÐ,
ÿ¸öÔªËØ°üº¬±»±àÂëµÄ×Ö·û´®ÖеÄÒ»¸öÓò.
HELP! * GREY=local
HTML version of LOCAL Foils prepared 2 June 1996
½ºÆ¬ 12: Perl ×Ó³ÌÐò
- Ö®¶þ
From Introduction to CGI Programming ECS400 Senior Undergraduate
Course -- Spring Semester 1996. * Critical
Information in IMAGE
Full
HTML Index
- ¶Ôÿ¸öÓòµÄ×Ö·û´®,
×Ó³ÌÐò¶ÔËùÓбàÂëµÄ·ûºÅ½øÐÐת»».
È»ºóËü´´½¨Ò»¸öÏà¹ØÊý×é
"%in" ,º¬ÓÐ´Ó web form ÖлñµÃµÄ¸÷¸öÓòµÄ"¹Ø¼ü×Ö,
Öµ"¶Ô.
- ¸Ã×Ó³ÌÐò¿ÉÒÔ²»¼ÓÐ޸ĵØÓÃÔÚÈÎÒâ
Perl CGI ³ÌÐòÖÐ, ³ý·ÇÄãÔÚ
form ÖÐʹÓÃÁË checkbox, Õâʱͬһ¸öÃû×Ö¿ÉÄÜ·µ»Ø¶àÓÚÒ»¸öµÄÖµ.
HELP! * GREY=local
HTML version of LOCAL Foils prepared 2 June 1996
½ºÆ¬13: CGI ³ÌÐòµÄÊä³ö:
¶Ô web ·þÎñÆ÷µÄÏìÓ¦
From Introduction to CGI Programming ECS400 Senior Undergraduate
Course -- Spring Semester 1996. * See
also color IMAGE
Full
HTML Index
- CGI ³ÌÐòÖÐËùÓжÔ
STDOUT µÄÊä³ö¶¼½»ÓÉ·þÎñÆ÷´¦Àí.
Êä³öÓ¦µ±ÒÔÒÔÏÂÈýÖÖÐÎʽ֮һµÄÍ·
( header ) ¿ªÊ¼:
- Location: ·þÎñÆ÷·¢ËÍÁíÒ»¸öÎļþ¸ø¿Í»§
(²¢ÇÒ½áÊøÁ¬½Ó).
- Èç: "Location: http://www.some.box.com/the_other_file.html";
- Status: ·þÎñÆ÷½«·µ»ØÒ»¸ö״̬ÏûÏ¢¸ø¿Í»§
(²¢ÇÒ½áÊøÁ¬½Ó).
- Èç: "Status: 305 Document moved\n";
- Content-type: ·þÎñÆ÷½«·¢ËÍËùÓÐÊ£ÓàµÄÊä³ö¸ø¿Í»§
(ÔÚÃüÁî¿ÕÐÐÖ®ºó),
³ÌÐò½áÊøºó²Å½áÊøÁ¬½Ó.
- Èç "Content-type: text/html\n\n";
HELP! * GREY=local
HTML version of LOCAL Foils prepared 2 June 1996
½ºÆ¬ 14: CGI ±à³ÌʵÓü¼ÇÉ
From Introduction to CGI Programming ECS400 Senior Undergraduate
Course -- Spring Semester 1996. * See
also color IMAGE
Full
HTML Index
- ÔÚÄã±àÖÆ CGI ³ÌÐòµÄ·þÎñÆ÷ÉÏ,
°Ñº¬ÓÐ form µÄ HTML Ò³·ÅÔÚ·þÎñÆ÷µÄ"Îĵµ¸ùĿ¼"("document
root")ϵÄij¸ö×ÓĿ¼ÖÐ,
°Ñ CGI ³ÌÐò·ÅÔÚ·þÎñÆ÷µÄ
"cgi bin"Ŀ¼ÏÂ. CGI ³ÌÐò±ØÐëÓÐÊʵ±µÄȨÏÞ,
ÒÔ±ã·þÎñÆ÷Ö´ÐÐ.
ÁíÍâ, Èç¹û CGI ³ÌÐòÒª¶ÁдÆäËüÎļþ,
·þÎñÆ÷±ØÐë¾ßÓÐÏàÓ¦µÄȨÏÞ.
- Èç¹ûÄãÏëÏȵ÷ÊÔÄãµÄ
Perl ³ÌÐò, Äã¿ÉÒÔ°ÑËü·Åµ½
cgi-bin Ŀ¼ÖÐÖ±½ÓÖ´ÐÐ,
°Ñ²âÊÔÊäÈë·ÅÔÚÎļþÖÐ:
- prog.pl < input.data
- µ±Ò»¸öCGI ³ÌÐò±ÀÀ£Ê±,
ÔÚ·þÎñÆ÷µÄ´íÎó¼Ç¼ÎļþÖлáÓмǼ.
HELP! * GREY=local
HTML version of LOCAL Foils prepared 2 June 1996
½ºÆ¬15 : ÆäËüʵÓü¼ÇÉ
From Introduction to CGI Programming ECS400 Senior Undergraduate
Course -- Spring Semester 1996. * Critical
Information in IMAGE
Full
HTML Index
- ÄãµÄ Perl ³ÌÐò½«ËüËùÔÚµÄ
cgi-bin Ŀ¼×÷Ϊµ±Ç°Ä¿Â¼ÔËÐÐ,
Òò´ËÔÚÈκÎÎļþϵͳÏ·ÃÎÊÄãµÄ
Perl ³ÌÐòʱ, ÒªÖ¸¶¨ÏàÓ¦µÄ·¾¶Ãû.
¼ÙÉèÄãµÄÎļþϵͳ½á¹¹ºÍÏÂÃæµÄÀý×ÓÏàͬ,
ÔòÒªÏëÔÚ prog.pl Öдò¿ªÎļþ
file1.txt »ò file2.txt , ʹÓÃ:
- open (FILE1, "file1.txt"); ºÍ open (FILE2,
"../../htdoc/njm/file2.txt");
Northeast
Parallel Architectures Center, Syracuse University, npac@npac.syr.edu
If you have any comments about this server, send e-mail to webmaster@npac.
syr.edu.
Page produced by wwwfoil on Mon Sep 16
1996 ---------- Xiaoming Li (315)443-3890 (o) NPACT (315)443-1973 (f)