Tips

HTTPリクエスト時のHTTPヘッダー

日付2015/08/04
ID15-011
バージョン13以降
プラットフォームWindows, Mac

Webサーバのテストを行っている時、HTTPのリクエストヘッダーのフィールドや値が、どのようになっているのかを知りたいことがあります。例えば、4DとWebクライアントの間に、プロキシなどが介在するようなときや、マルチドメインで利用している時などは、HTTPヘッダーにどのような値がセットされているかを知りたいと思うことでしょう。そのような時、次のコードが役に立つと思います。

  //目的
  //ブラウザにHTTPリクエスト時のヘッダーを表にして返す(テスト用)
  //データベースメソッド On Web Connection 下で利用

  //HTTPヘッダーの取出
ARRAY TEXT($header_names;0)  //HTTPヘッダーフィールドの名前格納用
ARRAY TEXT($header_values;0)  //HTTPヘッダーフィールドの値格納用
WEB GET HTTP HEADER($header_names;$header_values)  //HTTPヘッダーの取出

  //ヘッダーの内容を返信用にHTMLに組み上げる
C_TEXT($html)
$html:="<html><body><table>"  //HTMLのヘッダー部
C_LONGINT($i)
For ($i;1;Size of array($header_names))
$html:=$html+"<tr><td>"+$header_names{$i}+"</td><td>"+$header_values{$i}+"</td></tr>"
End for 
$html:=$html+"</table></body></html>"  //HTMLのフッター部

  //ヘッダーの内容を返信
WEB SEND TEXT($html)

このサンプルコードをOn Web Connectionメソッドあるいは、4D HTMLタグやURLからの利用を許可したメソッドに記述し、ブラウザからアクセスするだけで、どのようなHTTPヘッダーがセットされて4DのWebサーバーに亘っているかをチェックすることが簡単にできるようになります。