Presentation is loading. Please wait.

Presentation is loading. Please wait.

佐賀大学 理工学部知能情報システム学科 講師 大月 美佳

Similar presentations


Presentation on theme: "佐賀大学 理工学部知能情報システム学科 講師 大月 美佳"— Presentation transcript:

1 佐賀大学 理工学部知能情報システム学科 講師 大月 美佳
CGIプログラミング基礎 佐賀大学 理工学部知能情報システム学科 講師 大月 美佳

2 今回の趣旨 CGIプログラミングをする上で必要な 基礎的な事項を学習する 質問は随時ご自由に 2003年1月28日 CGIプログラミング基礎

3 Webの機構 Webクライアント Webサーバ インターネット コンピュータ (ケータイなども) HTML文書 など 静的もしくは
ページくれ インターネット どこかな? コンピュータ (ケータイなども) HTML文書 など ページだよ 静的もしくは 動的なページ 通信プロトコル:HTTP 2003年1月28日 CGIプログラミング基礎

4 Webの規格 標準化組織:W3C HTTP, HTML(XHTML), XML, etc. http://www.w3c.org/
→参考資料① HTTP, HTML(XHTML), XML, etc. 2003年1月28日 CGIプログラミング基礎

5 通信プロトコル:HTTP HTTP(HyperText Transfer Protocol) Webクライアント・サーバ間の言語
リクエストごとにコネクションを確立し 1回のデータ交換を終了するたびに接続を解除 GET, POST, HEAD, PUT, … 拡張HTTP, HTTP-KeepAlive データ通信が平文→暗号化が必要 HTTPS, SHTTP 2003年1月28日 CGIプログラミング基礎

6 記述言語:HTML(XHTML) HTML(HyperText Markup Language) XML対応→XHTML
WWWでもっとも一般的な記述言語 HTMLで書かれた文書をHTML文書という 構造化文書記述言語SGMLの一種 構造情報、レイアウト情報が混在 XML対応→XHTML 構造情報とレイアウト情報を分離 現在移行期間 2003年1月28日 CGIプログラミング基礎

7 XML XML 構造化文書記述言語 参考URL: SGMLの後継 任意の文字データの記述に使用可能→DB
SGMLの後継 より柔軟により簡単に 関連記述能力の強化 2003年1月28日 CGIプログラミング基礎

8 対話型ページの実現 動的コンテンツ クライアント側で実行 サーバ側で実行 プログラムにより動的に生成されるもの
JavaScript, Applet, 他プラグイン サーバ側で実行 SSIとCGIのどちらかで実現 ユーザとの対話→CGI 2003年1月28日 CGIプログラミング基礎

9 動的コンテンツ作成手法:SSI Server Side Include(SSI) 部分的な動的コンテンツの生成用 例: Apache設定
システム時刻やファイル更新日の取得など ユーザからの入力は不可能 例: <!--#config timefmt="%y/%m/%d %H:%M" --> <!--#flastmod file="index.html" --> Apache設定 Options Includes または IncludesNOEXEC AddType text/html .shtml AddHandler server-parsed .sthml 2003年1月28日 CGIプログラミング基礎

10 動的コンテンツ作成手法:CGI Common Gateway Interface(CGI)
WebサーバーとWebアプリケーションとの間の通信の共通インターフェイス ユーザからの入力 →フォームとの連携 <form action=“aaa.cgi" method="post“> <input type=“text” name=“Name” value=“Please input your name”> <input type=“submit” name=“SUBMIT” value=“SUBMIT”> </form> Apache設定 Options ExecCGI AddType application/x-httpd-cgi .cgi AddHandler cgi-script .cgi 2003年1月28日 CGIプログラミング基礎

11 CGIの機構 Webサーバ Webクライアント CGI HTTP プログラム ページくれ 呼び出し 出来たよ ページだよ
2003年1月28日 CGIプログラミング基礎

12 CGIを介したデータ授受 GET POST 環境変数 標準入力 標準出力 +ヘッダ情報 プログラム Content-type: …
GET /test.cgi?n1=v2&… または POST /test.cgi … GET POST 環境変数 標準入力 標準出力 +ヘッダ情報 プログラム Content-type: … <空行> データ 2003年1月28日 CGIプログラミング基礎

13 CGI設置に関する注意事項 「セキュアなWebサーバーの構築と運用」
→参考資料② 2003年1月28日 CGIプログラミング基礎

14 CGIの連携言語 プログラミング言語なら何でも スクリプト言語 上級言語 書きやすい、文字処理が得意
Perl, PHP, Ruby, Python, Tcl, … 上級言語 学習は難しい、実行速度は速い C/C++(C#), Java, Pascal(Delphi), … 2003年1月28日 CGIプログラミング基礎

15 Perl 参考URL: 特徴: Apache設定 優れた正規表現記述能力 文字処理に特化 膨大なライブラリの蓄積→CPAN 通常のCGI設定
mod_perl関連 2003年1月28日 CGIプログラミング基礎

16 PHP 参考URL: 特徴: Apache設定 日本PHPユーザ会 HTMLに直接埋めこみが可能 CGIとの親和性が高い mod_php関連
特徴: HTMLに直接埋めこみが可能 CGIとの親和性が高い Apache設定 mod_php関連 AddType application/x-httpd-php .php など 2003年1月28日 CGIプログラミング基礎

17 データの保存手段 プレーンテキスト データベース 小規模、プロトタイプなら十分 任意, CSV, XML, … 大規模なものには
簡易(db), RDB(SQLDB), OODB, XMLDB, … 2003年1月28日 CGIプログラミング基礎

18 XMLデータとの連携 HTML・XML文書のためのAPI
参考: 柔軟な操作→DOM XML文書の汎用モデル(オブジェクト指向) 参考: 単純大規模な処理→SAX 簡単な構文解析ツール 本家: 2003年1月28日 CGIプログラミング基礎

19 SQLDBとの連携 フリーのSQLDB 言語との連携 mySQL: 海外で優勢 PostgreSQL: 日本語の文献が多い
Perl: DBI.pm(汎用)、Pg.pmなど PHP: PHPLIB、各DB用インターフェース Java: JDBC(汎用)、ODBC(OO汎用) 2003年1月28日 CGIプログラミング基礎

20 Apache httpdの起動 /etc/apache/httpd.confの設定 /etc/init.d/apache start
SSI, CGIの設定 mod_php, mod_perlまわり 他色々→参考資料③ viの使用法→参考資料④ /etc/init.d/apache start 2003年1月28日 CGIプログラミング基礎

21 PHPプログラムサンプル <html>
<head><title>Test PHP</title></html> <body><h1>Test PHP</h1> <form method="POST" action="test.php"> <input type="TEXT" name="name" size="20" /> <input type="SUBMIT" name="TEST" value="TEST" /> </form> <hr> <p>Input: <?php print $name; ?></p> </body></html> 2003年1月28日 CGIプログラミング基礎


Download ppt "佐賀大学 理工学部知能情報システム学科 講師 大月 美佳"

Similar presentations


Ads by Google