faviconについて調べてみた

2017/05/09

faviconについてあれこれ調べたのでメモの断片を置いておきます。

faviconとは何か

概要や歴史はFavicon - Wikipediaが参考になります。

実際にどのように使われているか、どのように設定すべきかはRealFaviconGeneratorというサイトのFAQページによくまとまっています。 これを参考にして日本語で解説しているblogもあります。

faviconの優先順位

公式な仕様はなく、主要なブラウザが独自の仕様を持っている模様。 基本的にはhead要素内にlink要素として宣言されているので、rel属性を見てfaviconっぽいものを取得すればOK。

ひとつも見つからなかった場合はfallbackとしてルートディレクトリにfavicon.icoがないかどうかチェックするのが定石です。

複数取得できたときにどのfaviconを使うか、は用途次第なので、各ブラウザが独自に決めているようです。

faviconを作る

faviconの作成サービスはたくさんあります。前述のRealFaviconGeneratorもその一つ。 他にも日本語だと様々なファビコンを一括生成。favicon generatorなども。

バリエーションにどこまで対応しているかはサービスによって異なるのでニーズに合わせて選びましょう。とりあえず作りたい、レベルならどれを選んでも大差なさそう。

faviconを取得する

API形式でfavicon取得のサービスを提供しているところがいくつかあります。quota(=取得回数制限)ありのフリーミアム形式が主流のようです。

16x16のfavicon.icoだけがターゲットならGoogleの非公式APIが使えます。

http://s2.googleusercontent.com/s2/favicons?domain_url=http://domain.com

のように、パラメータに取得したいサイトのURLを指定するとfaviconが返ってきます。非公式ですし、いつ使えなくなるか分かりませんが手軽です。

また、各言語向けの取得ライブラリも探せば見つかります。GitHubとかで探しましょう。

自分がよく使う言語はJavaなので、試しにJavaで探してみました。ぱっと見つかったのはこれ一つ。ちょっと古くてメンテが行き届いていないっぽいのが難点です。

どのライブラリも割とシンプルな作りなので、それらを参考に自前で書くのもアリかと。




おススメ