
perlでHTTP Request Headersの情報を取得、表示するページを作成したい
当方初心者です。
apache上のCGI(perl)で、ブラウザから受け取った
HTTP Request Headersの情報を取得、出力するページを作成したいのです。
調べると下記のようなサーバ環境変数の取得、表示方法は多数ヒットするのですが
===================================================
#!/usr/bin/perl --
print << "DOC1";
Content-type:text/html\n\n
<HTML><BODY>
DOC1
print $ENV{'HTTP_USER_AGENT'}<br>\n";
print $ENV{'REMOTE_ADDR'}";
print << "DOC2";
</BODY></HTML>
DOC2
===================================================
今回は、環境変数からではなく、HTTP Request Headersから
直接ヘッダに格納された情報を取得したいのです
取得・表示したい情報は標準HTTPヘッダ情報に加え、
途中で経由するプロキシが追加するヘッダ情報です。
完成イメージとしては
PHPの<? phpinfo() ?>で出力できる
添付画像にあるような形なのですが
どのようにすればできるのでしょうか
サンプルの形で教えて頂けると助かります
参考になるページでも結構です
よろしくお願いします

No.1ベストアンサー
- 回答日時:
サーバ(Apache)が受け取ったHTTPヘッダの内容と言うことですよね?
Apacheは、それを環境変数に入れてPerlを起動します。環境変数名は、ヘッダ名を全部大文字にして、ハイフンをアンダーバーに変え、その前に HTTP_を付けたものです。
つまり、X-Forwarded-By: であれば、$ENV{'HTTP_X_FORWARDED_BY'} になるはず。
環境変数一覧は、
#!/bin/sh
echo "Content-Type: text/plain
"
env
とかをCGIで動かすとわかります。
ご回答ありがとうございます
環境変数と、HTTPヘッダの関係が理解できていませんでした。
CGI含むサーバーサイドのアプリケーションは、apacheが整えた環境変数を
使用すれば良く、直接HTTPのヘッダから取る必要はない(もしくはできない)
という認識で良いでしょうか?
環境変数はご説明頂いた通り'HTTP_X_FORWARDED_BY'に変数名が変換されていたので
元々自分の欲しい変数名'X-Forwarded-By'はどこに行ったの?と思っていましたが
アプリ側では変換された'HTTP_X_FORWARDED_BY'をそのまま使用するか、自分の欲しい変数名に
再変換する必要があるのですね。
ありがとうございました
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP PHP MySql ページング 2 2022/09/20 06:38
- HTML・CSS 別サイトのHTML内にある情報を自動取得して、自分のサイトに組込む方法を教えてください。 例えば、Y 1 2023/06/15 08:09
- CGI サイト訪問者の情報を取得したい 1 2023/02/21 11:03
このQ&Aを見た人はこんなQ&Aも見ています
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
携帯用のダウンロード配信
-
呼び出し元にデータを返す
-
PerlでHTTPヘッダの\\nを外すと...
-
クッキーの基礎的なことについて
-
VC++でCORBAを使用するには
-
cgi-lib.plのオフラインでの使用
-
週2回のペースって だいたい何...
-
CGIで出力するhtmlの<!DOCTYPE ...
-
自作のCGIの処理でお尋ねしたい...
-
エクセルで毎月第2週日の水曜日...
-
socket使用時の環境変数(REMOT...
-
cgiで拡張子.cgiと拡張子.pl...
-
ブラウザでタグがはみ出る
-
第○曜日であるかを取得する関数
-
a.cgi → b.cgiへデータの受渡...
-
ランダム数値
-
ファイルの転送。
-
Perl/CGIで作っているカ...
-
処理終了後、他のプログラムへP...
-
c言語の質問です。 ある月のカ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
リストコントロールの列幅を固...
-
VBAでExcelのヘッダーに文字列+...
-
[C#]ListView一覧表示時の幅設...
-
AccessVBAで「このフィールドに...
-
ヘッダのinclude順
-
メールをPDF化する際に、ヘッダ...
-
IrDA準拠のTX/RXヘッダとは
-
ルータでのMTU、MSS設定値の検...
-
関数ヘッダ?
-
perlでHTTP Request Headersの...
-
フリーメールでヘッダ情報を読...
-
HTTPヘッダの大きさ
-
LinuxでRTPヘッダを作りたいの...
-
HTTPヘッダの取得方法
-
バイナリファイルのアップロー...
-
ftpでのネットワークバイトオー...
-
Cookieがクリアされない
-
ping送信時のヘッダについて
-
HTTPリクエストがネットワーク...
-
リダイレクト
おすすめ情報