|
TclによるCGIプログラミング
ISBN4-89471-345-4 ピアソン・エデュケーション
D・マジアーノ 著
株式会社アットコム 訳
CD-ROM1枚付
B5変形 528ページ 本体価格5,600円 2001年3月発売
[内容]
本書は、CGIプログラミングのトピックを断片的に説明するのではなく、Webベースのアプリケーションの全容を解説しています。本書で示す例は、単純な「Hello
World」アプリケーションに始まり、Oracleデータベースとの接続、Tcl
Webブラウザプラグインを使ったチャットルームの接続や、ネットワークソケットプログラミングまでをカバーしています。付属CD-ROMには、本書で紹介するソースコードや各種Webページインターフェースが収録されています。
[目次]
第1章 インターネット
・インターネットの歴史
・・広域ネットワーク(WAN)
・・イーサネット
・・イーサネットデータフレーム
・インターネットワーキングとインターネット
・・インターネットプロトコル層
・・インターネットプロトコル(IP)
・・パケット交換
・伝送制御プロトコル(TCP)
・・断片化
・・スリーウェイハンドシェイク
・・ユーザーデータグラムプロトコル(UDP)
・・UNIXとインターネット
・インターネットアドレス
・・アドレス空間
・・CIDRアドレス
・・ポート
・・URL
・WWWの定義
・・クライアント/サーバーモデル Webサーバーとは何か?
・発展の記録
・・RFCシリーズ
・・インターネット標準化手順
・・作業グループの自由参加性
・・アドレス管理
・・Webユーザーの実像
・第1章のまとめ
第2章 CGI
・用語の説明
・Webトランザクションの分析
・・静的Webトランザクション
・・動的Webトランザクション
・CGIインターフェース
・・GETメソッド
・・POSTメソッド
・・環境変数
・HTTP仕様
・・ステートレス(状態を維持しない)プロトコル
・・HTTP要求
・・HTTPレスポンス
・・ステータスコード
・第2章のまとめ
第3章 はじめに
・Tclの入手とインストール
・Webサーバーの構成について
・CDのインストール
・cgi.tclライブラリの使い方
・モジュール性とTclパッケージファシリティ
・・命名規則
・・名前空間
・第3章のまとめ
第4章 Hello World
・ツールに関する語句
・サンプル1:HTMLバージョン
・CGIアプローチ
・・Hello Worldフォーム
・CGIプログラムのデバッグ
・・コマンド行の実行
・・環境変数のセットアップ
・・ユーザー入力の表示
・・埋め込み型のputsコマンドの使用
・・catchステートメントを仕様したエラー検出
・・対話型のデバッグ
・・debugコマンド
・・Tclのデバッガ
・第4章のまとめ
第5章 Webベースのディレクトリブラウザ
・セキュリティ上の課題
・・クライアントのIPアドレスの取得
・・REMOTE_ADDRを仕様したアクセス制限
・・裏口のガード
・QUERY_STRINGを仕様したステータス情報の取得
・・ディレクトリ画面の構築
・ブラウザの拡張
・・絶対パスを隠す
・・アイコンの追加
・・“1レベルアップ”アイコンの提供
・第5章のまとめ
第6章 モーゲージカリキュレータ
・公式
・・毎月の返済額
・・割賦スケジュール
・mort.tclパッケージ
・・パッケージの構造
・・mort::paymentプロシージャ
・・mort::scheduleプロシージャ
・Webページの設計
・・モーゲージカリキュウレータの画面
・・返済額の計算画面
・・割賦スケジュール
・・見やすい表示
・第6章のまとめ
第7章 ヒット数のカウント方法
・counter.tclパッケージ
・・couner_get_countプロシージャ
・・counter_displayプロシージャ
・さらなるトリック
・・隠しフィールド
・第7章のまとめ
第8章 サーバーサイドインクルード
・サーバーサイドインクルードとは?
・Webサーバーの構成
・サーバーサイドインクルードディレクティブ
・SSIの例
・・システム変数のドキュメントへの挿入
・・ドキュメントへのテキストの挿入
・・ファイルに関する統計量
・・外部プログラムの実行
・モーゲージカリキュウレータの再検討
・SSI出力のカスタマイズ
・第8章のまとめ
第9章 イメージマップ
・サーバーサイドイメージマップ
・クライアントサイドイメージマップ
・・どのような形にもなるファイル
・・マップの構築
・ジェムストーン社の会議室
・・要求の処理
・第9章のまとめ
第10章 フォームへのデータの埋め込み
・単層ファイルデータベース
・・単層ファイルについて
・・選択画面
・・結果画面
・・db.tclパッケージ
・スタンドアロンアプリケーションでのdb.tclの使用
・・db.tclパッケージの組み込み
・・データベースの構築と取り込み
・・データベースからのレコード読み込み
・・データベースからのレコード削除
・・データベースのレコードの更新
・db.tclコマンド一覧
・クライアント/サーバーアプリケーションでのdb.tclの使用
・・データベースサーバープログラム:dbserver.tcl
・・クライアント/サーバーモデルでの認証
・・実CGI
・・オフラインでのデータのメンテナンス
・第10章のまとめ
第11章 クッキーはいかが?
・クッキーはいかが?
・・クッキー論争
・・クッキーの焼き方
・・クッキービューワ
・・クッキーを作る
・・有効期限のあるクッキーを作る
・・効力が持続するクッキーの保管先
・・手作業でクッキーを期限切れさせる
・・1箱に何個のクッキーが入っているのか?
・第11章のまとめ
第12章 バグトラッカー
・バグトラッカーユーザーの認証
・・db.tclパッケージのユーザーアカウント
・bugt.cgiプログラム
・・ログイン画面
・ブラウザウィンドウ
・・データベースへのログイン
・・認証クッキーの作成
・・HTMLテンプレート
・・ブラウザリストの構築
・・フィルタの構築
・エントリの表示
・・隠しフィールドの使用
・エントリの編集
・新規エントリの画面
・第12章のまとめ
第13章 データのゲートウェイの構築
・データベースの概要
・・単層ファイルデータベース
・・リレーショナルモデル
・・エンティティの関係図
・OraTclパッケージ
・・Oracleデータベースへの接続
・・Oracleとカーソル
・・OraTclにおけるSQLの使用
・・テストデータベースの構築
・・orafetchコマンドを使用したクエリ結果の検索
・Tclシェルからのデータベースの検査
・CGIスクリプト内のOraTcl
・・会社プロフィールの取得
・・ドライブリストの取得
・・ドライブの統計データの取得
・第13章のまとめ
第14章 CGIスクリプトのExpect
・Expectの概要
・・sendコマンド
・・入力とExpectの参照
・・spawnコマンド
・Webログインアプリケーション
・第14章のまとめ
第15章 Tclのブラウザプラグインについて
・ブラウザプラグインとは
・・ブラウザプラグインを使うメリット&デメリット
・Webブラウザプラグインの取得/インストール
・初めてのTclet
・・SRC属性によるスクリプトファイルの参照
・・“HELLO WORLD”フォームアプリケーション
・・セキュリティポリシー
・・デフォルトのエラー処理
・・オリジナルのエラー処理の構築
・ストリームとJavaScriptポリシー
・モーゲージカリキュレータを再訪問
・・クライアント/サーバーアプローチ
・・tranceコマンドを使用した画面検証
・・毎月の返済額の画面
・・Tcletのメインウィンドウの再使用
・クライアントサイドのアプリケーション
・第15章のまとめ
第16章 Tclチャットルーム
・Tclソケットの内容
・・サーバーの作成
・・クライアント接続の受け付け
・・クライアント接続の構成
・・コールバックプロシージャの確立
・・クライアント接続の処理
・・クライアント
・クライアントをWeb上に置く
・・Tcletの検査
・第16章のまとめ
付録A HTMLリファレンスガイド
・HTMLページの基本的なレイアウト
・一般的にもっともよく利用されているHTMLコード
・見出し
・リスト
・・どっとポイント(番号なしリスト)
・・列拳リスト(番号付きリスト)
・表
・フォーム
付録B Tcl言語の概要
・変数の操作
・Tclがコマンドを評価するしくみ
・・コメント行/行区切り文字
・・変数の置換
・・コマンドの置換
・・バックスラッシュ置換
・・引用符を用いたグループ化
・・中括弧を用いたグループ化
・・Tclの戻り値
・文字列の操作
・Tclリスト
・・リストの作成:list,lappend,concat
・・リストのクエリ:llength,lindex,lsearch
・・リストの操作:linsert,lreplace,lsort
・Tcl配列
・・多次元配列
・・arrayコマンド
・・配列情報の取得:array exists,array names,array size
・・配列の検索
・・配列からリストへの変換:array get
・・リストから配列への変換:array set
・パターン照合
・制御フローコマンド
・・条件付きステートメント
・・ループ:for,foreach,while
・ファイルアクセス駒ネオ
・・ファイルを開く/閉じる:open,close
・・コマンドのパイプライン
・・シリアルデバイスへの接続
・・ファイルシステムへのインターフェース
・・ファイルI/O:puts,gets
・プロシージャ
・・returnコマンド
・・returnコマンドを使用したエラーの強制
・・catchコマンドを使用したエラーのキャッチ
・・プロシージャのデフォルトの引数値
・・引数の変数値をプロシージャに渡す
・・upvarコマンドを使用した参照渡し
・ネットワーク通信
・Tcl内部のクエリ
・コードの構成
・・sourceコマンド
・・packageコマンド
・・名前空間
付録C cgi.tclリファレンス
・プロシージャの概要
・cgi.tclによる出力について
・ライブラリ呼び出しリファレンス
付録D Webブラウザプラグイン
・概要
・・Webブラウザプラグインの取得とインストール
・・Webブラウザプラグインのコンフィギュレーションファイル
・・安全のために
・・セーフインタプリタ
・・Webブラウザプラグインのセキュリティモデル
・Webブラウザプラグインのフィーチャ
・・ブラウザの名前空間
・・networkフィーチャ
・・persistフィーチャ
・・streamフィーチャ
・・unsafeフィーチャ
・・URLフィーチャ
・セキュリティポリシー
・・コンフィギュレーションファイルのフォーマットを理解する
・・homeポリシーの分析
・リスクを理解する
・・保全リスク
・・プライバシーリスク
・・信用低下
・・迷惑アタック/リソースアタック
・Tclブラウザプラグインのロギング機能
・プラグインコンソール
参考文献
索引
|