Favicon APIですが、少し更新したので報告。以前からちょっと表示されないアイコンがあるなぁ…。と思ってたんですが、ロジックの問題ですた。
なにかというと、ディレクトリ構造の深い所にあるサイトの場合ドメイン直下のfavicon.icoを引っ張ってくるのは乱暴なので、そのカレントディレクトリのfavicon.icoを探すようにもしているのです。例えば、http://jigen.aruko.net/path1/path2/ とかいうURLだったら http://jigen.aruko.net/path1/path2/favicon.icoを探しにいく感じ。例えばブログサービスとかでドメインは一緒だけどfaviconは違うよってのがケースとしては多い。
もちろんhtmlのヘッダ部分に shortcut icon として明記してあるのはそれを優先するようにはしているのですが…。
一番抜けていたロジックは上記のfavicon.icoを探した場合にhttpステータスが200であった場合はOKって事にしてた節があるんだが、ステータスは404だけど独自404でデータ返す奴もあるよね~。あったりまえじゃ~ん。アホだ俺。
なので、Contents-Typeあたりがtext/htmlとかだった場合も考慮しました。ご迷惑おかけしましたスンマセン。
phpでコンテンツゲッツした時にhttpヘッダ取得するのが標準関数にあったのでjigen studylogの方に別エントリーを「phpでhttp通信をしてhttpヘッダを取得 | jigen studylog」として書いといた。