HTTPリクエストの処理
4D Webサーバーは、HTTPリクエストを処理するための機能を複数備えています:
- Webアプリケーションのルーターとなる
On Web Connection
データベースメソッド。 - サーバーサイドコードを呼び出すための
/4DACTION
URL。 - サーバーに送信された HTMLオブジェクトから値を取得 する
WEB GET VARIABLES
。 WEB GET HTTP BODY
、WEB GET HTTP HEADER
、WEB GET BODY PART
などのコマンドによって、リクエスト処理をカスタマイズすることができます (cookie 含む)。- 変数を宣言するための COMPILER_WEB プロジェクトメソッド。
On Web Connection
On Web Connection
データベースメソッドは、4D Webサーバーのエントリーポイントとして使用できます。
データベースメソッドの呼び出し
On Web Connection
データベースメソッドは、サーバー上に存在しないページへのパスをサーバーが URL として受け取った場合に、自動的に呼び出されます。 データベースメソッドは、URL とともに呼び出されます。
たとえば、"a/b/c" という URL はデータベースメソッドを呼び出しますが、WebFolder の "a/b" サブフォルダーに "c.html" というページが存在する場合、"a/b/c.html" はデータベースメソッドを呼び出しません。
このリクエストは、事前に
On Web Authentication
データベースメソッド (あれば) に受け入れられているべきで、Webサーバーも起動している必要があります。
シンタックス
On Web Connection( $1 : Text ; $2 : Text ; $3 : Text ; $4 : Text ; $5 : Text ; $6 : Text )
引数 | 型 | 説明 | |
---|---|---|---|
$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)
// メソッドのコード
あるいは、名前付き引数 シンタックスを利用することもできます:
// On Web Connection データベースメソッド
#DECLARE ($url : Text; $header : Text; \
$BrowserIP : Text; $ServerIP : Text; \
$user : Text; $password : Text)
インターフェース要素 を表示する 4Dコマンド (
DIALOG
、ALERT
など) の呼び出しは許可されず、メソッドの処理を終了します。
$1 - URL追加データ
最初の引数 ($1) は、ユーザーが Webブラウザーのアドレスエリアに入力した URL からホストのアドレスを取り除いたものです。
イントラネット接続の場合を見てみましょう。 4D Webサーバーマシンの IPアドレスを 123.4.567.89 とします。 以下の表は Webブラウザーに入力された URL に対して、$1 が受け取る値を示しています:
Webブラウザーに入力された値 | $1 の値 |
---|---|
123.4.567.89 | / |
http://123.45.67.89 | / |
123.4.567.89/Customers | /Customers |
http://123.45.67.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サイトのリソースにアクセスできます。
$2 - HTTPリクエストのヘッダーとボディ
二番目の引数 ($2) は、Webブラウザーから送信された HTTPリクエストのヘッダーとボディです。 この情報は On Web Connection
データベースメソッドに "そのまま" 渡されることに留意してください。 その内容は、接続を試みた Webブラウザーの仕様により異なります。