Cashflow 101???? by 6f6g5Yt

VIEWS: 22 PAGES: 21

									CGIプログラミング基礎

  佐賀大学
  理工学部知能情報システム学科
    講師 大月 美佳
今回の趣旨
CGIプログラミングをする上で必要な
基礎的な事項を学習する

質問は随時ご自由に




2003年1月28日   CGIプログラミング基礎   2
Webの機構
       Webサーバ                    Webクライアント

                  ページくれ




   どこかな?                           コンピュータ
                インターネット            (ケータイなども)
HTML文書
  など                           ページだよ

     静的もしくは
            通信プロトコル:HTTP
     動的なページ
2003年1月28日      CGIプログラミング基礎                 3
Webの規格
 標準化組織:W3C
   http://www.w3c.org/
    W3Cの仕様書等の文書の日本語訳集
       http://www.w3.org/Consortium/Translation/Japan
         ese
       →参考資料①
 HTTP,      HTML(XHTML), XML, etc.



2003年1月28日           CGIプログラミング基礎                       4
通信プロトコル:HTTP
 HTTP(HyperText          Transfer Protocol)
    Webクライアント・サーバ間の言語
        リクエストごとにコネクションを確立し
        1回のデータ交換を終了するたびに接続を解除

        GET, POST, HEAD, PUT, …

    拡張HTTP,
          HTTP-KeepAlive
    データ通信が平文→暗号化が必要
          HTTPS, SHTTP



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

 XML対応→XHTML
    構造情報とレイアウト情報を分離
    現在移行期間




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



2003年1月28日           CGIプログラミング基礎   7
対話型ページの実現
 動的コンテンツ
    プログラムにより動的に生成されるもの

 クライアント側で実行
    JavaScript,   Applet, 他プラグイン
 サーバ側で実行
    SSIとCGIのどちらかで実現

    ユーザとの対話→CGI




2003年1月28日          CGIプログラミング基礎    8
動的コンテンツ作成手法: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

2003年1月28日               CGIプログラミング基礎                   9
動的コンテンツ作成手法: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プログラミング基礎                                10
CGIの機構
               Webサーバ                 Webクライアント

     呼び出し                  ページくれ




      CGI
                               HTTP
             出来たよ



  プログラム                   ページだよ




2003年1月28日      CGIプログラミング基礎                  11
CGIを介したデータ授受
                               GET /test.cgi?n1=v2&…
GET            POST            または
                               POST /test.cgi …
環境変数         標準入力

                標準出力 +ヘッダ情報


      プログラム           Content-type: …
                      <空行>
                      データ

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




2003年1月28日        CGIプログラミング基礎               13
CGIの連携言語
 プログラミング言語なら何でも
    スクリプト言語
        書きやすい、文字処理が得意
        Perl, PHP, Ruby, Python, Tcl, …

    上級言語
        学習は難しい、実行速度は速い
        C/C++(C#), Java, Pascal(Delphi), …




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

 Apache設定
    通常のCGI設定
    mod_perl関連



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


2003年1月28日                 CGIプログラミング基礎           16
データの保存手段
 プレーンテキスト
    小規模、プロトタイプなら十分

    任意,     CSV, XML, …
 データベース
    大規模なものには

    簡易(db),    RDB(SQLDB), OODB, XMLDB,
      …



2003年1月28日         CGIプログラミング基礎            17
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/




2003年1月28日                  CGIプログラミング基礎                           18
SQLDBとの連携
 フリーのSQLDB
    mySQL:  海外で優勢
    PostgreSQL: 日本語の文献が多い

 言語との連携
    Perl:DBI.pm(汎用)、Pg.pmなど
    PHP: PHPLIB、各DB用インターフェース

    Java: JDBC(汎用)、ODBC(OO汎用)




2003年1月28日    CGIプログラミング基礎       19
Apache httpdの起動
 /etc/apache/httpd.confの設定
        CGIの設定
    SSI,

    mod_php, mod_perlまわり

    他色々→参考資料③

    viの使用法→参考資料④

 /etc/init.d/apache   start



2003年1月28日       CGIプログラミング基礎   20
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プログラミング基礎                 21

								
To top