Last Update 2007/09/21

DelphiプログラマのためのCGI入門
WebBrokerでらくらくプログラミング

山本 秀樹 著
B5変型判 192ページ
定価1,980円(税込)
JAN9784789835916
1999年8月15日発行
[絶版2001.4.30] DelphiプログラマのためのCGI入門
大変恐縮ですが,こちらの商品は品切れ絶版となりました.

 本書は,インプライズ社(旧ボーランド社)のDelphi 3 Client/Server Suiteの新機能である,Webサーバーアプリケーション開発機能を用いた,CGIプログラミングについて解説したものです.Delphi 3.1からは,Professional版でもこの機能が提供され,より多くの人がこの機能を利用できるようになりました.さらに,C++Builder 3 Professional版以上にも,同じ機能が含まれています.本書ではDelphiを用いて解説していますが,C++Builder 3を用いてもほぼ同じことが行えます.
 Webサーバーアプリケーション開発機能を用いると,ISAPI/NSAPI, Windows-CGI, CGIといった各種形式のCGIプログラムを,通常のアプリケーションと同様に容易に実現できます.書店でCGIプログラミングの本を見ると,プログラミング言語としてPerlを用いているものが大部分です.確かにPerlは強力な文字列処理機能を持つ便利な言語ではありますが,むしろPerlでCGIプログラミングを行うためのライブラリやドキュメントが揃っているのが,その大きな理由ではないかと思っています.Delphi 3のWebサーバーアプリケーション開発機能は,CGIプログラミングのためのライブラリという点から見ても,Perlに引けを取らなくなったように思います.もともとDelphiは,データベースアプリケーションをはじめとする,さまざまなWindowsアプリケーション開発のための機能を数多く持っているので,Webサーバーアプリケーション開発機能が追加されたことにより,WindowsにおけるCGIプログラミングに最適な開発環境になったのではないでしょうか.
 本書の原稿は,すでにCGIプログラミングの経験がある人向けに,簡単な技術資料として書き始めたものです.当初はこれを一般に公開するつもりもなく,まして本になるとも思わず,週末の余暇としてのんびりと進めていました.ところが,原稿がある程度まとまってきた頃に,不思議な運命により,このように出版されることになりました.出版されることが決まってからかなり説明を詳しくしたつもりなのですが,この本をお読みになって説明が足りないと感じられるところがあれば,申し訳ありませんが,それは初期の原稿の雰囲気を残しているところかも知れません.
 CGIはその名が示す通り,それ単独で何か素晴らしいことができるわけではなく,単にWebサーバーと他のプログラムをつなぐインターフェースにすぎません.DelphiのWebサーバーアプリケーション開発機能により,CGIプログラミングのための使いやすい枠組みが提供されました.この枠組みとDelphiが本来持っている強力な開発機能を組み合わせ,読者の皆さんの創意工夫によりシステムを構築してみてください.その際,本書の内容が少しでもお役に立てば幸いです.

  以上,「まえがき」から
目次

まえがき

第1章 はじめに
 1.1 本書の構成
 1.2 前提とする知識
 1.3 ソフトウェア環境

第2章 CGI概要
 2.1 CGIとは
 2.2 URL
 2.3 リクエストメソッド
 2.4 フォーム
  2.4.1 <FORM>
  2.4.2 <INPUT>
  2.4.3 <SELECT>
  2.4.4 <TEXTAREA>
 2.5 CGIの仕組み
  2.5.1 CGI
  2.5.2 Windows-CGI
  2.5.3 ISAPI/NSAPI
 2.6 Delphiで作成したCGIプログラムの特徴
  2.6.1 Delphiで作成したCGIプログラムの構造
  2.6.2 マルチスレッドへの対応

第3章 CGIプログラムの作成手順
 3.1 ISAPIの場合
  3.1.1 プログラムの作成手順
  3.1.2 Windows NTの設定
  3.1.3 デバッガの設定
  3.1.4 動作確認
 3.2 NSAPIの場合
  3.2.1 Webサーバーの設定
  3.2.2 プログラムの作成と動作確認
 3.3 Windows-CGIの場合
  3.3.1 プログラムの作成手順
  3.3.2 動作確認
 3.4 CGIの場合
  3.4.1 プログラムの作成手順
  3.4.2 動作確認

第4章 Webレスポンスオブジェクト
 4.1 Webレスポンスオブジェクトとは
 4.2 Contentプロパティ
  4.2.1 Contentプロパティの簡単な使用例
  4.2.2 カレンダー表示
  4.2.3 データベース内の文字列の表示
 4.3 ContentTypeプロパティ
 4.4 ContentStreamプロパティ
  4.4.1 ContentStreamプロパティの簡単な例
  4.4.2 画像の動的な生成
  4.4.3 データベース内の画像データを返す方法
  4.4.4 画像を返すCGIプログラムにアクセスする方法
 4.5 SendResponseメソッド
 4.6 SendStreamメソッド
 4.7 応答を返すプロパティ・メソッドの比較
 4.8 カスタムヘッダー
  4.8.1 HTTPヘッダーチェックプログラムの作成
  4.8.2 CustomHeadersプロパティ
 4.9 SendRedirectメソッド
 4.10 LogMessageプロパティ
  4.10.1 IIS3の場合
  4.10.2 IIS4の場合

第5章 コンテンツプロデューサ
 5.1 コンテンツプロデューサとは
 5.2 TPageProducer
  5.2.1 TPageProducerの簡単な使い方
  5.2.2 HTML透過タグの使い方
  5.2.3 テンプレートの指定方法の比較
 5.3 TDataSetTableProducer
 5.4 TQueryTableProducer
 5.5 TDataSetPageProducer

第6章 Webディスパッチャ
 6.1 Webディスパッチャとは
 6.2 PathInfoによるWebアクションアイテムの選択
 6.3 リクエストメソッドによるWebアクションアイテムの選択
 6.4 デフォルトWebアクションアイテム
 6.5 Webアクションアイテムの優先度
  6.5.1 通常のWebアクションアイテムの優先度
  6.5.2 デフォルトWebアクションアイテムの優先度
 6.6 Handled引数
 6.7 OnBeforeDispatchとOnAfterDispatchイベントハンドラ
 6.8 Enabledプロパティ
 6.9 ディスパッチ処理のアルゴリズム
 6.10 データモジュールを使う場合

第7章 Webリクエストオブジェクト
 7.1 Webリクエストオブジェクトとは
 7.2 Webリクエストオブジェクトの各プロパティの内容
 7.3 UserAgentプロパティを用いたWebブラウザの判定
 7.4 ContentFieldsとQueryFields
 7.5 URLエンコード
 7.6 データベースへの登録
 7.7 UrlManagerの作成

第8章 CGIプログラムの作成技法
 8.1 マルチスレッドへの対応
 8.2 ユーザー認証
  8.2.1 HTTPに基づくユーザー認証
  8.2.2 Base64エンコード
  8.2.3 独自の認証処理
 8.3 排他制御
 8.4 アクセス権
 8.5 Webモジュールの生成と破棄
 8.6 漢字コード
 8.7 Cookie
 8.8 Webブラウザ上で動作するプログラムとの連携
 8.9 アップロード

第9章 Webデータベースシステムの作成
 9.1 仕様
 9.2 画面構成と操作
 9.3 使用例
  9.3.1 アクセス
  9.3.2 新規登録
  9.3.3 検索
  9.3.4 更新
  9.3.5 削除
 9.4 簡略版一覧表示の実装
 9.5 Webデータベースシステムの実装
  9.5.1 処理概要
  9.5.2 一覧表示の拡張
  9.5.3 データ検索
  9.5.4 検索解除
  9.5.5 データ登録
  9.5.6 データ更新
  9.5.7 データ削除
 9.6 URLによる操作

第10章 Webデータベースシステムの拡張
 10.1 複数画面からなるシステム
  10.1.1 使用例
  10.1.2 単一のWebアクションアイテムによる実現
  10.1.3 複数のWebアクションアイテムによる実現
  10.1.4 別CGIプログラムによる実現
  10.1.5 多数の画面からなる場合
 10.2 SQL Linkを用いたデータベースサーバーとの接続
  10.2.1 InterBase 4.2
  10.2.2 Microsoft SQL Server 6.5
  10.2.3 Oracle 8

 参考文献
 索 引
 プログラムリストの入手方法について