1 / 21

CGI プログラミング基礎

CGI プログラミング基礎. 佐賀大学 理工学部知能情報システム学科 講師 大月 美佳. 今回の趣旨. CGI プログラミングをする上で必要な 基礎的な事項 を学習する 質問は随時ご自由に. Web の機構. Web クライアント. Web サーバ. ページくれ. インターネット. どこかな?. コンピュータ (ケータイなども). HTML 文書 など. ページだよ. 静的もしくは 動的なページ. 通信プロトコル: HTTP. Web の規格. 標準化組織: W3C http://www.w3c.org/

anne
Download Presentation

CGI プログラミング基礎

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

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

  4. Webの規格 • 標準化組織:W3C http://www.w3c.org/ • W3Cの仕様書等の文書の日本語訳集 http://www.w3.org/Consortium/Translation/Japanese →参考資料① • HTTP, HTML(XHTML), XML, etc. CGIプログラミング基礎

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

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

  7. XML • XML • 構造化文書記述言語 任意の文字データの記述に使用可能→DB • 参考URL: http://www.xml.org/ • SGMLの後継 より柔軟により簡単に 関連記述能力の強化 CGIプログラミング基礎

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

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

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

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

  13. CGI設置に関する注意事項 • 「セキュアなWebサーバーの構築と運用」 http://www.ipa.go.jp/security/awareness/administrator/secure-web/ →参考資料② CGIプログラミング基礎

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

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

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

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

  18. XMLデータとの連携 HTML・XML文書のためのAPI • 参考:http://www.atmarkit.co.jp/fxml/index.html • 柔軟な操作→DOM • XML文書の汎用モデル(オブジェクト指向) • 参考: http://www.doraneko.org/misc/dom1/introduction.html • 単純大規模な処理→SAX • 簡単な構文解析ツール • 本家: http://www.saxproject.org/ CGIプログラミング基礎

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

  20. Apache httpdの起動 • /etc/apache/httpd.confの設定 • SSI, CGIの設定 • mod_php, mod_perlまわり • 他色々→参考資料③ • viの使用法→参考資料④ • /etc/init.d/apache start 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> CGIプログラミング基礎

More Related