55106


**Q1.**  
・下記コードを記載している場合のみ、favicon.icoを探すと思っていたのですが、この認識で合っていますか？

[code]

    <link rel="icon" href="https://example.com/favicon.ico">
    
[/code]

**Q2**  
・favicon.ico を設置していない場合、ブラウザはfavicon.ico を探す？ 探さない？

**Q3**  
・favicon.ico を設置していない場合、Webサイトの表示度速度が遅くなることはありますか？


CC BY-SA 4.0
2019-05-20T00:43:36.850
55098
2019-05-22T01:34:24.387
7886
question
html
favicon.ico と Webサイトの表示度速度について


A1. 最近の Web user agent はその記載がなくても `GET /favicon.ico` を（勝手に）行うようです。  
A2. Web user agent には超能力はありませんから事前に設置状況を知っていて `GET /favicon.ico`
をしたりしなかったり、なんてことはありえません。 `GET` に対して `404`
が返却されることで設置されていないことがわかるだけです。つまり「常に探します」。  
A3. `GET /favicon.ico` に `200`
が返されたら当然その分のデータ転送が発生します。データ転送時間は余計にかかるでしょう。表示速度は Web user agent
側のレンダリング時間で決まるので何とも言えないです。

たいていのサイトでは `favicon.ico` は静的ファイルとして実装されて `httpd`
のキャッシュメモリに載っているでしょうから、純粋に転送時間だけが必要です。ここ SO を含む多くのサイトは内容を動的生成していて、その生成時間が
`favicon.ico` の転送時間より長いなら `favicon.ico` の有無は無視できるほどの時間差しか生まないでしょう。


CC BY-SA 4.0
2019-05-20T05:04:58.117
55105
2019-05-20T05:04:58.117
8589
55098
answer


**A1.** いいえ。icon キーワードを持つ `link` 要素を記述していない場合でも、ブラウザは `favicon.ico`
を探索することがあります。

HTML Standard によれば、 `link` 要素が icon キーワードを持たず、文書の URL スキームが HTTP(S)
である場合、規定された 3 つの処理を同時並行的に処理することが出来ます。

> ### [§ 4.6.6.8 Link type
> "icon"](https://html.spec.whatwg.org/multipage/links.html#rel-icon)
>
> In the absence of a `link` with the `icon` keyword, for `Document` objects
> whose URL's scheme is an HTTP(S) scheme, user agents may instead run these
> steps in parallel:
>
>   1. Let request be a new request whose url is the URL record obtained by
> resolving the URL `"/favicon.ico"` against the `Document` object's URL,
> client is the `Document` object's relevant settings object, destination is
> `"image"`, synchronous flag is set, credentials mode is `"include"`, and
> whose use-URL-credentials flag is set.
>   2. Let response be the result of fetching request.
>   3. Use response's unsafe response as an icon as if it had been declared
> using the icon keyword.
>

**A2.** 上記のとおり、探します。

**A3.** なるかもしれませんが、微々たるものだと思います。


CC BY-SA 4.0
2019-05-20T05:07:11.633
55106
2019-05-22T01:34:24.387
2019-05-22T01:34:24.387
32986
32986
55098
answer