[解決済み] なぜ1x1ピクセルのGIF(ウェブバグ)データを提供するのか?
疑問点
多くの分析・追跡ツールが、クロスドメインイベントの保存/処理用に 1x1 GIF 画像 (ユーザーからは見えない Web バグ) を要求しています。
なぜこの GIF 画像をまったく提供しないのですか? それは より効率的 のようなエラーコードを返す方が効率的ではありませんか? 503 サービスが一時的に利用できません または空のファイル?
更新してください。 より明確に言うと、GIF 画像データを提供するために必要なすべての情報が が既に送信されているのに をリクエストヘッダで送信しています。GIF 画像そのものは、何の有用な情報も返しません。
どのように解決するのですか?
Dougの回答はかなり包括的です。(OPの要望で、私のコメントから)追加でメモしておこうと思います。
Doug の回答は、1x1 ピクセル ビーコンが使用される目的について説明しています。私は、代替アプローチの可能性について概説しようと思いました。
204 コンテンツなし
サーバはリクエストを処理しましたが を返しますが エンティティボディを返す必要はなく 更新されたメタ情報を返したいかもしれません。レスポンス は新しいまたは更新されたメタ情報を含んでもよい の形で、新規または更新されたメタ情報を含んでもよい。 エンティティヘッダーがある場合は、そのヘッダーは に関連付けられるべきです (SHOULD)。 リクエストされた variant に関連付けられるべきです。
基本的に、サーバはリクエストを受け取り、ボディを送らない (この場合、画像を送らない) ことにします。しかし、これは意識的な決定であることをエージェントに知らせるために、コードで返信します。基本的に、これは肯定的な応答をするための単なる短い方法です。
から Google のページ速度に関する文書 :
ページビューを記録する一般的な方法の1つは ビューを非同期で記録する一般的な方法の1つは、次のとおりです。 JavaScriptのスニペットを ターゲットページの下部 (または オンロードイベントハンドラとして) 含めることです。 ログサーバーに通知します。 ページを読み込んだときにログサーバーに通知します。これを行う最も一般的な方法は これを行う最も一般的な方法は、サーバーにビーコンを要求する サーバーへのリクエストを作成することです。 ビーコンリソースのURLのパラメータとして ビーコン・リソースのURLのパラメータとしてエンコードすることです。HTTPレスポンスを非常に小さくするために HTTPレスポンスを非常に小さくするために 1x1ピクセルの透明な画像は、ビーコンリクエストに最適です。 ビーコンリクエストの候補となります。A より最適なビーコンとして HTTP 204レスポンス("no content") よりもわずかに小さい1x1 GIF よりもわずかに小さくなります。
試したことはありませんが、理論的には、GIF 自体を送信することなく同じ目的を果たすはずで、Google Analytics の場合、35 バイトを節約することができます。(全体から見れば、Google Analytics が 1 日に何兆ものヒットを提供しているのでなければ、35 バイトなんてたいしたことありません)。
このコードでテストすることができます。
var i = new Image();
i.src = "http://httpstat.us/204";
関連
-
[解決済み] jQueryを使わずに "data-xxx "属性の要素をすべて選択する
-
[解決済み] チェックボックスが選択されているかどうかを確認するjQuery
-
[解決済み] javascriptで2つの数値を連結する方法は?
-
[解決済み] WebStormで未解決の変数が大量にある場合の警告に対処する方法は?
-
[解決済み] 文字列が空白であるかどうかをチェックする
-
[解決済み] React js 親コンポーネントから子コンポーネントの状態を変更する
-
[解決済み] JSXとLoadshを使用して、ある要素をn回繰り返す方法
-
[解決済み] javascript includes() 大文字小文字を区別しない
-
[解決済み] jqueryはjavascriptのライブラリなのかフレームワークなのか?[クローズド]
-
[解決済み] Prototypeを使ってtextareaを自動サイズ調整するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 配列からオブジェクトを生成する
-
[解決済み] <Enter>でjQuery UIダイアログを送信する
-
[解決済み] なぜJavaScriptでは!{}[true]がtrueに評価されるのですか?
-
[解決済み] 文字列がすべて同じ部分文字列で構成されているかどうかを調べるにはどうすればよいですか?
-
[解決済み] WebStormで未解決の変数が大量にある場合の警告に対処する方法は?
-
[解決済み] JavaScriptを使用してHTML要素に属性を追加/更新するには?
-
[解決済み] Javascript / jQueryでAndroid端末を検出する。
-
[解決済み] AngularJS - ngRepeatフィルタリングされた結果の参照を取得する方法
-
[解決済み] JavaScriptとLuaの微妙な違い [終了しました]
-
[解決済み] HTML要素にスクロールバーがあるかどうかをチェックする