人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

アクセスログの仕組みは?

アクセスログに記載される情報は、何が何を取得している情報なのでしょうか?
たとえば、「ブラウザに画像ファイルが表示された」という場合、アクセスログに記載される情報はブラウザが送信しているのでしょうか?

また、「アクセスログをファイルに書き出す」という処理は、ApacheなどのWEBサーバが、受け取った値と、時刻などを合わせて書いているだけなのでしょうか?

さらに、この処理をするときに、ほかの処理(phpなど)を呼び出すことはできないのでしょうか?
処理がとっても重くなるなら、同じような効果を実現できる他の方法はあるのでしょうか?

●質問者: dingding
●カテゴリ:インターネット ウェブ制作
✍キーワード:Apache PHP Web アクセスログ サーバ
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● きゃづみぃ
●20ポイント

http://magic3.net/text/proxy.html

>アクセスログに記載される情報はブラウザが送信しているのでしょうか?

>WEBサーバが、受け取った値と、時刻などを合わせて書いているだけなのでしょうか?

そうです。

なお、ブラウザが情報を渡しているため

その情報を偽装することも可能です。

主な情報は、上記のURLにある一般の情報というのを参照してもらえればいいでしょう。

◎質問者からの返答

サイト単位での偽装も可能なのでしょうか?

たとえば、Aサイトにある画像aaa.jpgをBサイト上で表示されているという場合、

Aサイトに管理人にBサイトに貼り付けていることを隠すために、何かすれば、Bサイトに貼り付けていることがわからなくすることができるということでしょうか?


2 ● b-wind
●30ポイント

たとえば、Aサイトにある画像aaa.jpgをBサイト上で表示されているという場合、

Aサイトに管理人にBサイトに貼り付けていることを隠すために、何かすれば、Bサイトに貼り付けていることがわからなくすることができるということでしょうか?

容易に可能。


そういった情報は、リファラと呼ばれます。

リファラとは 【referer】 - 意味・解説 : IT用語辞典 e-Words

また、これは容易に偽装する事が出来ます。

question:1165146615


基本的にはアクセスログに記録されるのは、

・サーバーから見える情報

アクセス時間・相手のIPAddress・アクセスしてきたURL等

・クライアントから送られてきた情報

ブラウザ種別・リファラ等

に分かれますが、サーバー自身から見える情報は信頼できますが、クライアントから送られてきた情報は鵜呑みにするしかないので信頼は出来ません。

ただ、統計を取るといったレベルでは偽装している人たちがそれほど多くない状況では問題になりません。


さらに、この処理をするときに、ほかの処理(phpなど)を呼び出すことはできないのでしょうか?

Apache に関して言えば、CustomLog で pipe を使用することで任意のアプリケーションに渡せます。

http://httpd.apache.org/docs/2.2/ja/mod/mod_log_config.html#cust...

もっと細かな処理や、ぎりぎりのチューニングをする場合は Apache のモジュールとして実装してしまう事もあります。

◎質問者からの返答

ありがとうございます。

調べてみます。


3 ● merkava
●30ポイント ベストアンサー

Webサーバーが記録するアクセスログは、ブラウザ(などのユーザーエージェント)が送信してきた「自分はこういう者だが、どれそれのファイルを送信してくれ」という要求と、Webサーバーがその要求にどのように応じたかの記録です。一回の要求と応答につき、1行記録されます。記録される項目は自由に設定できますし、一般的な書式は以下のURLに詳細があります。

http://jp.logcenter.net/index.php/WeblogAnalysis:Usage:Weblog


以上のことから、アクセスログには「ブラウザに画像ファイルが表示された」という記録は残らず、「ブラウザに画像ファイルを要求されたので送信した」という記録が残ります。


また、IPアドレスやOS、リンク元URLなどのブラウザの身元情報はブラウザ自身が送信した情報を元に記録され、送信したファイルやその日時時刻、送信バイト数、ブラウザへ送信したステータスコード(404や501など)といった情報はWebサーバー自身が自らの動作を元に記録します。


なお、Apacheはログをパイプ(|)で別の実行プログラムに標準出力で渡すことができます。以下のURLに詳細があります。

http://httpd.apache.org/docs/2.0/ja/logs.html#piped(日本語/Apache 2.0)

http://httpd.apache.org/docs/1.3/logs.html#piped(英語/Apache 1.3)


処理が重い場合の代替方法についてはケースバイケースかと思います。単純にデータ量を減らせば解決できる場合は、ログの書式を変更して必要のない項目を記録しないようにすることで解決できるかも知れません。また、Webサイトの運用に活用することを目的とするのであれば、ログの項目は最小限に抑え、ログ専用のサーバーを持っている業者にアウトソースした方が手間もコストも省ける場合が多いようです。


ちなみにアクセスログ解析については以下の書籍がおすすめです。

http://www.amazon.co.jp/exec/obidos/ASIN/4798107360/

◎質問者からの返答

めちゃめちゃためになります。

アクセスログが要求と応答の記録であるということがとてもためになります。

解析の本は持ってましたが、結構前に読んだのでわかっていませんでした。

ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ