Your SlideShare is downloading. ×
Web server and_cgi
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Web server and_cgi

2,583
views

Published on

mang kinds of cgi interface

mang kinds of cgi interface


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,583
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 1Copyright © 2009, Cameo Communications, Inc. All rights reserved. 2009/09/03Web Server & CGISpeaker: Lingling Wang
  • 2. 222Copyright © 2009, Cameo Communications, Inc. All rights reserved.Web Server & CGI Web Server Web Server 简介 Web Server 环境配置 Web Server 工作原理
  • 3. 333Copyright © 2009, Cameo Communications, Inc. All rights reserved.Web Server 简介 Web Server 网页服务器 WWW(WORLD WIDE WEB) 服务器 主要功能 提供网上信息浏览服务• 提供 Web 文件的存放空间;• 传送和管理 Web 文件;• 支持各种 Web 程式;
  • 4. 444Copyright © 2009, Cameo Communications, Inc. All rights reserved.Web Server 环境配置主流 Web 服务器软件 Apache• 开源,免费• Linux, Unix, Windows…• 安装复杂• 稳定 , 安全• …… IIS (Internet Information Service)• Windows OS 绑定的组件• 安装简单• IIS6.0 较稳定,安全• ……Note : Web 服务器软件的选择主要参考服务器端的操作系统及当前应用等。
  • 5. 555Copyright © 2009, Cameo Communications, Inc. All rights reserved.Web Server 环境配置 Note: 安装完成后,在系统盘下会产生一个 Inetpub 的目录 , 这是 IIS 的主目录。 Inetpub• wwwroot - web 站点的默认主目录;• scripts - IIS 会创建一个虚拟目录 SCIPTS 指向该目录,并且给这个目录执行权限。此目录存在安全隐患。• AdminScripts -存放 IIS 的 Web 方式管理脚本文件;• iissamples - IIS 帮助和实例文件存放目录;• mailroot - smtp 服务主目录;• ftproot - ftp 站点的默认主目录;Web Server Installation.pdfhttp://172.22.102.123
  • 6. 666Copyright © 2009, Cameo Communications, Inc. All rights reserved.Web Server 环境配置 虚拟目录 从主目录以外的其他目录中进行发布,必须创建虚拟目录。 虚拟目录不包含在主目录中,但在显示给客户端浏览器时就象位于主目录中一样。  虚拟目录有一个“别名”,供 Web 浏览器访问此目录时使用。由于别名通常要比目录的路径名短,因此便于用户输入。使用别名更加安全,因为用户不知道文件在服务器上的实际位置,所以无法使用此信息修改文件。使用别名可以更方便地在站点中移动目录,原因在于不需要更改目录的 URL ,只需更改别名与目录实际位置之间的映射即可。
  • 7. 777Copyright © 2009, Cameo Communications, Inc. All rights reserved.Web Server 工作原理 浏览器将 URL 分解为三个部分 协议(“ http” ) 服务器名(“ 172.22.102.123” ) 文件名(“ chunhua.html” ) 工作原理图http://172.22.102.123/chunhua.html
  • 8. 888Copyright © 2009, Cameo Communications, Inc. All rights reserved.Web Server 工作原理工作原理步骤 Step1: Web 浏览器根据客户提供的 URL 链接相关的 Web 服务器; Step2: 如果能和 Web 服务器链接上,浏览器将把整个 URL 传送给 Web 服务器; Step3: Web 服务器根据 URL 所提供的路径查询 Web 浏览器所需要的资源,并将该资源传送给 Web 浏览器; Step4: Web 服务器中断和浏览器的链接 Step5: Web 浏览器显示 Web 服务器传回的 Web 页面
  • 9. 999Copyright © 2009, Cameo Communications, Inc. All rights reserved.Web Server & CGI CGI CGI 简介 CGI 环境配置 Server - CGI 工作原理 CGI 预备知识 CGI 编程 CGI 安全问题
  • 10. 101010Copyright © 2009, Cameo Communications, Inc. All rights reserved.CGI 简介CGI(Common Gateway Interface) CGI (通用网关接口),即 Web 服务器主机提供信息服务的标准接口,通过该接口, Web 服务器能够执行应用程式并将它们的输出,如文字、图形、声音等传送给一个 Web 浏览器。一般来说, CGI 标准接口的功能就是在 HTML 文档与服务器应用程式之间传递信息。 CGI 标准接口主要解决以下几个问题:• Web 服务器和 CGI 程式之间如何传递信息?• Web 服务器向 CGI 程式传送什么信息?• Web 服务器向 CGI 程式传送信息的格式是什么?• CGI 程式向 Web 服务器返回什么信息?• CGI 程式向 Web 服务器返回信息的格式是什么?
  • 11. 111111Copyright © 2009, Cameo Communications, Inc. All rights reserved.CGI 简介 CGI 程式( .cgi )语言 编译型语言• C/C++• Visual Basic• … 解释型• Perl• Shell• AppleScript• …
  • 12. 121212Copyright © 2009, Cameo Communications, Inc. All rights reserved.CGI 环境配置 环境配置讲解 CGI(C, Perl)环境配置 .pdf 示例 CGI(C)• testIsLinked.html - simpleAnswerServer.c– http://172.22.102.123/html/testIsLinked.html CGI(Perl)• Perl简介 (Larry Wall )– Theres More Than One Way To Do It!• testIsLinked(Perl).html – simpleAnswerServer(Perl).pl– http://172.22.102.123/html/testIsLinked(Perl).html
  • 13. 131313Copyright © 2009, Cameo Communications, Inc. All rights reserved.Server - CGI 工作原理CGI 工作步骤 : Step1: 客户端发出请求 Step2: Web 服务器激活 CGI 程序 Step3: CGI 程序对客户端的请求做出反应 Step4: Web 服务器将 CGI 的处理结果传送给客户端 Step5: Web 服务器中断和客户端浏览器的链接 Step6: Web 浏览器将 CGI 程序的输出显示到浏览器的窗体Note:1. 如果请求时一个普通的文件(如 HTML文件、 GIF 或 JPEG 文件), Web 服务器将文件直接传送给客户端的浏览器。如果是 CGI 程式,服务器激活 CGI 程式。2. 在 CGI 程式被执行前, Web 服务器要为 CGI 程式设置一些环境变量。 CGI 程式结束,环境变量也随着消失。
  • 14. 141414Copyright © 2009, Cameo Communications, Inc. All rights reserved.CGI 工作原理 表单、服务器和 CGI 之间的关系
  • 15. 151515Copyright © 2009, Cameo Communications, Inc. All rights reserved.CGI 预备知识- STDIN/STDOUT STDIN/STDOUT 文件句柄 STDOUT: 屏幕 STDIN: 键盘 重定向 管道连接 : 一个程式的标准输入 / 输出( STDIN/STDOUT )也可以和另一个程式的标准输出 / 输入相连 CGI 程式输入 / 输出信息 CGI 程式输入 / 输出信息方式与普通程式不一样 !!! 对于 CGI 程式来说,当 CGI 程式被服务器激活后,其标准输入链接到 Web 服务器的标准输出,标准输出则被连到服务器的标准输入,形成管道链接。
  • 16. 161616Copyright © 2009, Cameo Communications, Inc. All rights reserved.CGI 预备知识- STDIN/STDOUT Web 服务器-客户端和 CGI 程式间的中介 Web 服务器将 Web 浏览器传送来的信息放在它的标准输出和环境变量中; CGI 程式从它的标准输入 ( 即 Web 服务器的环境变量和标准输出 ) 获取信息, 并将最终输出结果写向它的标准输出 ( 即 Web 服务器的标准输入 ) ; Web 服务器从它的标准输入(即 CGI 程式的标准输出)获取 CGI 程序的输出结果并将它传送给 Web 浏览器。
  • 17. 171717Copyright © 2009, Cameo Communications, Inc. All rights reserved.CGI 预备知识- GET/POST GET 客户机把表单中的信息附加到由 action 属性标记命名的 URL 的末尾,用一个问号把经过 URL 编码后的信息与 URL 名字分开; 受到 URL 长度的限制,只能传递大约 1024 字节,且内容在 URL 中显示; 要传输的信息由 http 头部传输的; 缺省方法; POST 要传输的信息作为 http 请求的内容,传输的数据量大,可以达到 2M ; 传输的信息不在 URL 中显示出来;Note: 顾名思义 , Post 主要为了将数据传送到服务器端 ; Get 主要从服务器端取得数据。
  • 18. 181818Copyright © 2009, Cameo Communications, Inc. All rights reserved.CGI 预备知识- URL 编码 / 解码 U RL 编码-浏览器打包表单输入的格式 浏览器从表单获取所有的 name 和其值 ,将它们以 name/value 参数编码作发给服务器; 每对 name/value 由 & 符分开; name/value 由 = 符分开。如果用户没有输入值给这个 name , name 及 = 符出现,无值; 空格用‘ +’ 代替; 保留的控制字符、具有特殊意义的字符用 % 接相应的十六进制ASCII 码代替。 U RL 解码-编码逆过程 Html 表单变量与其相应值的分离 特殊字符替换http://172.22.102.123/html/userRegistration_1.html
  • 19. 191919Copyright © 2009, Cameo Communications, Inc. All rights reserved.CGI 预备知识-环境变量 Request-Specific 环境变量 CONTENT_TYPE -所传送来的信息的 MIME 类型• 一般是 application/x-www-form-urlencoded, 表示数据来自于 HTML 表单。 REQUEST_METHOD -服务器与 CGI 程序之间的信息传输方式• POST/ GET CONTENT_LENGTH - 从 STDIN 中可以读到的有效数据的字节数• POST 传输方式 QUERY_STRING - 传送的信息• GET 传输方式 REMOTE_ADDR - 发送请求的客户机的 IP 地址 REMOTE_HOST -发送请求的客户机的主机名 …
  • 20. 202020Copyright © 2009, Cameo Communications, Inc. All rights reserved.CGI 预备知识-环境变量 Server-Specific 环境变量 SERVER_NAME -服务器的主机名或 IP 地址 SERVER_SOFTWARE -回应客户端请求的服务器的软体名称和版本 SERVER_PROTOCOL -用于发送请求的协议的名称和版本号 SERVER_PORT -服务器接受请求时所使用的端口号 … Client-Specific 环境变量 HTTP_ACCEPT - 说明了浏览器本次请求所能接收的数据类型 HTTP_REFERER - 存储浏览器当前页面所请求上一个页面的 URL HTTP_USER_AGENT - 存储浏览器软件的类型和版本号 …
  • 21. 212121Copyright © 2009, Cameo Communications, Inc. All rights reserved.CGI 编程 CGI 程式结构 初始化• 环境变量的获取与判断• 接受所要处理的有关数据 处理• 输入处理 - URL 解码• 输出处理- 格式化输出– 任意输出前均必须有一个用于定义 MIME 类型的输出类型( Content-type )行,MIME 类型格式为类型 / 子类型( type/subtype ),如 Content-type=text/html, 服务器告诉客户机如何处理该文件,缺省值为 text/plain ;– 随后还必须跟一个空行; 终止• 如果程式对某些文件进行了上锁操作,必须解锁;• 如果程式申请了某些对象如信号量,必须释放它们;• 释放内存。
  • 22. 222222Copyright © 2009, Cameo Communications, Inc. All rights reserved.CGI 编程 CGI(C) 程式示例 userRegistration_1.html - userRegistration_1.c• http://172.22.102.123/html/userRegistration_1.html userRegistration_2.html - userRegistration_2.c• http://172.22.102.123/html/userRegistration_2.html userRegistration_3.html - userRegistration_3.c (cgihtml库)• http://172.22.102.123/html/userRegistration_3.html CGI(Perl) 程式示例 investigation(Perl).html - investigation.pl• http://172.22.102.123/html/investigation(Perl).html
  • 23. 232323Copyright © 2009, Cameo Communications, Inc. All rights reserved.CGI 安全问题 Web 服务器的安全 Web 服务器软件编制中的 BUG 、服务器配置错误 可能导致: CGI 源代码泄露、 物理路径信息泄露 、系统敏感信息泄露、 远程执行任意指令 … CGI 语言的安全   输入验证错误• 没有过滤“ ../” 经常造成泄露系统文件• 没有过滤“ ;” 经常导致执行任意系统指令• 没有过滤“ |” 或“ t” 经常导致文本文件攻击• 没有过滤“’”和“ #” 经常导致 SQL 数据库攻击 使用错误• Perl 中的“ die” 函数,如果没有在错误信息后面加上“ n” 的话就极可能导致物理路径泄露 ; …
  • 24. 242424Copyright © 2009, Cameo Communications, Inc. All rights reserved.总 结 思考问题 简述 WebServer 的主要功能; 当前主流 Web 服务器软件有哪些? CGI 标准接口主要解决哪些问题? Web 服务器如何充当客户端和 CGI 程式间的中介? CGI 程式常常用到哪些环境变量,并简述其含义? 可选题 配置自己的主机为 Web 服务器,在主目录下创建一个 MyfirstWeb文档,设置其为默认网页。 选择自己熟悉的语言编写 CGI 程式,功能:将用户表单输入的信息以追加形式存入文件。
  • 25. 252525Copyright © 2009, Cameo Communications, Inc. All rights reserved.总 结 主要参考书籍 CGI 编程指南 CGI 技术全面接触 CGI 程序设计指南 进一步学习资料 PerlChina Perl 语言入门 ( 第四版 ) BOA(CGI,ASP,PHP,JAVA)
  • 26. 262626Copyright © 2009, Cameo Communications, Inc. All rights reserved.Question, Suggestion & DiscussionThanks!