プロが教えるわが家の防犯対策術!

サイトでpngやjsの記述の後ろに「?565487f400018498」といって感じで英数字が付いていることがありますが、これはなにを意味しているのでしょうか?

例)
http://xxxxx.com/img/logo.png?565487f40001849856 …
http://xxxxx.com/js/jquery.min.js?998t2648489e84 …

A 回答 (5件)

以下2つのどちらかの可能性が高いのでは?



(1)pngやjsファイルが実行ファイルになっている、もしくは実行ファイルに転送される仕組みなっていて
「?」以降のパラメータを読んでそれにあわせた結果を返している

(2)「?」以降はそのページを読み込むたびに別のパラメータが付くようにしてあり
キャッシュ対策として、毎回そのファイルが強制的に再読み込みされるようにしている
    • good
    • 0
この回答へのお礼

ありがとうございます。
記述が長いものの場合は(1)の可能性が高いような気がします。
素人考えですが、キャッシュ対策なら識別ができればよいので、わざわざパラメーターを長くするメリットも低そう。

お礼日時:2016/03/30 15:24

キャッシュ対策です。


httpでは GETコマンドに対してブラウザ側のキャッシュや
プロクシ、サーバのキャッシュが効いてくるので
コンテンツを入れ換えても5~6分の間古い情報が返ります。

古~いIEは極悪で、キャッシュを設定で永久保存可能だったりして、
昔は対策に悩みました(^-^;

ページにキャッシュオフの指定を埋め込む手も有りますが
トラフィックが増えてしまいます。

頻繁に変わるコンテンツやJSのデバック時は、
ダミ-のクエリパラメータを変化させて
キャッシュを回避することがよく行なわれます。
このため現在時刻等を元にダミーのクエリパラメータを
生成して埋め込んでくれるライブラリが沢山
存在します。

これってけっこう大事で、出来るだけキャッシュオフせず
かつGETで画面遷移を行いたい時
等は必要な技術です。
#POSTはキッシュされません。
    • good
    • 0

windows病に罹患している。

(^^)
Windowsは拡張子で、そのファイルをどのプログラムで開くか決めているのですが、それ以外のOSは、拡張子もファイル名の一つでしかない。ネット上ではパス情報も含めて
 例えば、
http://hoge.com/img/logo.png?565487f40001849856
でブラウザがしているのはHTTPプロトコルで、hoge.comに接続して
GET : /img/logo.png?565487f40001849856
と要求しているに過ぎない。・・・要求ヘッダ

サーバーは、それを解釈してデータを送り返すだけで、その時にそのデータの形式MIME-TYPEをヘッダに入れているのですよ。この場合、返されるデータ名は当然
/img/logo.png?565487f40001849856
 という名前のデータ。そのときのヘッダーに
Content-Type: image/png
とあれば、ブラウザはpng画像として扱う。・・・

 単純にそれだけのことです。

★では、なぜ?以降---QUERY_STRING がついているかというと、(^^)
どの情報が欲しいかと要求するときに
/img/logo.png?565487f40001849856
 ̄↑ ̄ ̄ ̄ ̄ ̄  ↑
PATH_INFO  QUERY_STRING
パス酢情報    クエリ文字列
と、要求ヘッダの後に一行あけて送られる標準入力(STDIN)
の3っがあります。
 #以降はサーバーには送られません。

例えば、wikiのページは、
https://ja.wikipedia.org/wiki/%E3%83%AA%E3%83%B3 …
となっている。firefoxなどだと
https://ja.wikipedia.org/wiki/リンゴ
と表示されるでしょ。
 どこにも拡張子がない・・・(^^)
 それがなぜ、HTMLとして表示されるかというとサーバーからの応答ヘッダに
Content-type:text/html
 とあるからです。

例えば
Enviroment Variable and FORM,COOKIE( http://hpcgi1.nifty.com/Iruka/ENV_FORM.cgi/img/s … )
にアクセスすると、表示されるのは、画像じゃなくHTMLだよ。

(注意)
 だから、メールのやり取りで知識のある人はHTMLメールを決して送受信しない。私はThunderbirdを使っていますが、うめこみ画像は基本的に「リモート画像をブロックしました」となり、表示しません。
 標準入力はHTMLメールでなきゃ不可能だけど---HTMLメールだとリンクに偽装できる---、パス情報とクエリ文字列は画像に埋め込める。
 あなたのメールに
http://xxxxx.com/abc/efg/img/logo.png
とか
http://xxxxx.com/img/logo.png?123456
とあっても、疑わないでしょ。
 後者だけでなく前者も、追跡されている可能性があるのです。
送信者側は、ひとりひとりに個別に指定すれば、それがサーバーで開かれるたびに
/abc/efg/ は、どこに送ったメールか
123456 は、どこに送ったメールか
 がすぐわかる。
 このアドレスは生きているので、商品にしよう。

とね。
    • good
    • 0

>キャッシュ対策なら識別ができればよいので、わざわざパラメーターを長くするメリットも低そう。



おそらく何らかのハッシュ(パスワード)関数をつかって
日時やマイクロ秒などから自動生成しているのでは?
    • good
    • 0

たぶんブラウザのキャッシュ対策。



http://wisdomtrees.net/?p=10
http://w3q.jp/t/6996
    • good
    • 0
この回答へのお礼

ありがとうございます。キャッシュ、なるほど。

お礼日時:2016/03/30 15:19

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!