4D v14.3

On Web Connectionデータベースメソッド

ホーム

 
4D v14.3
On Web Connectionデータベースメソッド

On Web Connectionデータベースメソッド  


 

 

On Web Connectionデータベースメソッドは以下のケースで呼び出されます:

  • Webサーバが /4DCGI/ から始まるURLを受信した。
  • Webサーバが無効なリクエストを受信した。

詳細な情報は、後述の“On Web Connection データベースメソッド呼び出し” の段落を参照してください。

互換性に関する注意: コンテキストモードでコンテキストが作成されたときもデータベースメソッドは呼び出されます。コンテキストモードは廃止予定のモードで、変換されたデータベースで利用できます。

データベースがWebサーバとして公開され、リクエストは事前にOn Web Authenticationデータベースメソッドで受け入れられていなければなりません(存在する場合)。

On Web Connectionデータベースメソッドは6つのテキスト引数を受け取ります。これらの引数の内容は以下のとおりです:

引数説明
$1テキストURL
$2テキストHTTPヘッダ + HTTPボディ (32 KBまで)
$3テキストWebクライアント (ブラウザ) のIPアドレス
$4テキストサーバのIPアドレス
$5テキストユーザ名
$6テキストパスワード

これらの引数を以下のように宣言しなければなりません:

  // On Web Connection データベースメソッド
 C_TEXT($1;$2;$3;$4;$5;$6)
  // メソッドコード

  • URL

    最初の引数 ($1) は、ユーザがWebブラウザのアドレスエリアに入力したURLからホストのアドレスを取り除いたものです。
    イントラネット接続の場合をみてみましょう。4D WebサーバのIPアドレスを123.4.567.89とします。以下の表はWebブラウザに入力されたURLに対して、$1が受け取る値を示しています:
    Webブラウザのアドレスに入力された値$1の値
    123.4.567.89/
    http://123.4.567.89/
    123.4.567.89/Customers/Customers
    http://123.4.567.89/Customers/Customers
    http://123.4.567.89/Customers/Add/Customers/Add
    123.4.567.89/Do_This/If_OK/Do_That/Do_This/If_OK/Do_That

    この引数は必要に応じて自由に利用できます。4Dは単にURLのホスト部より後の部分を$1に渡します。
    例えば値 "/Customers/Add" が “直接新規レコードを[Customers] テーブルに追加する”ということを意味するというような、オリジナルのルールを作成できます。Webユーザにデータベースを公開し、利用可能な値やブックマークを提供できます。アプリケーションの異なる部分へのショートカットを提供できます。このようにして、Webユーザはデータベースに接続するたびにナビゲーションを通過することなく、素早くWebサイトのリソースにアクセスできます。

警告: 以前のセッションで作成されたブックマークでデータベースに再入力されることを防ぐため、4Dは標準の4D URLに対応するURLをすべてキャッチします。

  • HTTPリクエストのヘッダとボディ

    2番目の引数 ($2) はWebブラウザから送信されたHTTPリクエストのヘッダとボディです。この情報はOn Web Connectionデータベースメソッドにそのまま渡されることに留意してください。その内容は接続を試みたWebブラウザの仕様により異なります。
    Mac OS上のSafariでは、以下のようなヘッダを受け取るでしょう (一部省略):
    GET /favicon.ico HTTP/1.1
    Referer: http://123.45.67.89/4dcgi/test
    User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X; fr-fr) AppleWebKit/523.10.3 (KHTML, like Gecko) Version/3.0.4 Safari/523.10
    Cache-Control: max-age=0
    Accept: */*
    Accept-Language: ja-jp
    Accept-Encoding: gzip, deflate
    Connection: keep-alive
    Host: 123.45.67.89


    Windows上のMicrosoft Internet Explorer 8では、以下のようなヘッダを受け取るでしょう:
    GET / HTTP/1.1
    Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*
    Accept-Language: ja-JP
    User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)
    Accept-Encoding: gzip, deflate
    Host: 123.45.67.89
    Connection: Keep-Alive


    アプリケーションでこの情報を使用するには、開発者がヘッダとボディを解析しなければなりません。
    : パフォーマンスの理由から、このデータのサイズは32KBで切り取られます。
  • WebクライアントのIPアドレス

    $3 引数はブラウザマシンのIPアドレスを受け取ります。この情報を使用して、イントラネットアクセスとインターネットアクセスを区別できます。
  • サーバIPアドレス

    $4 引数はWebサーバを呼び出すために使用されたIPアドレスを受け取ります。4Dバージョン6.5以降マルチホーミングがサポートされ、複数のIPアドレスを持つマシンで使用できるようになりました。詳細はWebサーバー設定を参照してください。
  • ユーザ名とパスワード

    $5 と $6 引数は、ブラウザが表示する標準の認証ダイアログにユーザが入力したユーザ名とパスワードを受け取ります。このダイアログは環境設定でパスワード管理オプションが指定されていると、接続のたびに表示されます (接続セキュリティ参照)。

注: ブラウザから送信されたユーザ名が4Dに存在する場合、$6 引数 (ユーザパスワード) はセキュリティのため渡されません。

4DCGI URLまたはカスタマイズされたコマンドURLを使用したWebサーバーへのアクセスのエントリポイントとして使用できます。

警告: インタフェース要素を表示する4D コマンド (ALERT, DIALOG...) を呼び出すと、メソッド処理が終了します。

は以下のケースで呼び出されます:

  • 4Dが /4DCGI/ URLを受け取ったとき。$1/4DCGI/<action> が渡されて、データベースメソッドが呼び出されます。
  • <path>/<file>タイプのURLで存在しないWebページが呼び出されたとき。データベースメソッドにそのURLが渡されて呼び出されます (*)。
  • <file>/ タイプのURLでWebページが呼び出され、デフォルトのホームページが設定されていないとき。データベースメソッドにそのURLが渡されて呼び出されます (*)。
(*) 特定のケースでは、$1に渡されるURLはスラッシュ"/"で始まりません。

 
プロパティ 

プロダクト: 4D
テーマ: Webサーバ

 
参照 

On Web Authenticationデータベースメソッド
URLとフォームアクション
データベースメソッド

 
ARTICLE USAGE

ランゲージリファレンス ( 4D v14 R2)
ランゲージリファレンス ( 4D v14 R3)
ランゲージリファレンス ( 4D v13.5)
ランゲージリファレンス ( 4D v14.3)
ランゲージリファレンス ( 4D v14 R4)

Inherited from : On Web Connectionデータベースメソッド ( 4D v12.4)