インターネット・キーワード
"インターネット・キーワード" は、コンテンツをブラウザで処理せず、リモートサーバに送信することによって、ナビゲーションツールバーの "ロケーション" フィールドを拡張するものです。これは、一元化、アップグレードの容易さ、ユーザによるカスタマイズといった、サーバベースのサービスの利点をすべて含んでいます。"サーバサイド URL 解決" は、より正確な名称にするべきかもしれませんが、Netscape は Communicator 4.x で独自の "インターネット・キーワード" サイトにこの機能を組み込み、この名称が定着しています。Mozilla はこの機能を実装しており、Netscape は Mozilla から Netscape 6 以降の製品をビルドしています。そのため、この機能はそれらすべてのブラウザで一貫性があるのです。
なぜ Mozilla ではこの機能がデフォルトで無効になっているのですか?
Mozilla のソースコードは Netscape 6/7 やその他のブラウザ製品の基礎となっています。そのため、これらの製品で利用可能な多くの機能が含まれています。しかし、mozilla.org は、さまざまな開発者やベンダーに対する、柔軟性のあるコードベースの提供に焦点を当てています。これは、後方互換性よりもテストの優先順位が高いということに影響しています。
この機能がデフォルトで無効になっているのは、これが、現時点でより多くのテストを必要とする、他のパーサや DNS の動作よりも優先されてしまうためです。Mozilla のテスターは一般的に経験豊富なので (そして自分のプロファイルに設定を保存しているので)、ユーザは簡単にこの機能を有効にすることができます。以前デフォルトで有効になっていたこともあり、テストのニーズ次第では、今後有効になる可能性もあります (bug 100412 をご覧ください)。
この機能は Mozilla Firebird ではデフォルトで有効になっており (bug 172389)、Chimera では無効になっています (bug 155321)。
自分が使っているのはどこのキーワードサーバですか?
Mozilla は最近まで keyword.netscape.com を利用していましたが、Mozilla 1.6 最終版から Google がキーワードサーバになりました。
注: この変更は "all.js" に加えられたもので、つまり、各インストールバージョンが独自のデフォルト値を持っているということです。プロファイルの keyword.url を変更しない限り、これより新しいバージョンは Google を利用します。
Mozilla Firebird は Google の " I'm Feeling Lucky" サービスを利用しています。これは、インターネット・キーワードをリクエストするたびに、検索結果のインデックス一覧を表示するのではなく、あなたが見たいと思うページを Google が考えて、そのページに誘導してくれるものです。
どのような動作をするのですか?
ロケーションバー (Bugzilla コンポーネントは Browser: Location Bar) は、ユーザの入力を取り込んで、それを URL に変換します。ユーザが完全な URL を入力すれば、ブラウザはそのページを表示します。しかし実際には、これは非常にまれなことです。そのため、URL バーは、ユーザが入力した文字列を完全な URL に変換したり、予想されるページを検索する、一連の賢いパーサを使います。この URL 解決プロセスの詳細は、このドキュメントの範囲を超えています。とにかく、この機能はほとんど常に機能しているといえば十分でしょう。
インターネット・キーワードは、場合によっては URL バーパーサを補完することもあります。たとえば、スペースを含んだ言葉は、直接インターネット・キーワードに渡されます。また、ドメインと思われるものは、インターネット・キーワードによって変換されます。たとえば、"mozilla" が "http://www.mozilla.com/" に拡大解釈されることはありません。
インターネット・キーワードは user_pref("keyword.enabled", true); を追加すれば有効になります。これは、Preferences > Navigator > Smart Browing > Internet Keywords から設定できます。
有効にすると、URL バーはテキストを keyword: プロトコルハンドラに送るようになります。これは、設定されている (user_pref("keyword.URL", <URL>);) keyword URL の最後にエンコードした文字列を加え、その URL によって、テキストをインターネット・キーワード・サーバに送ります。
サーバのレスポンスはページとして表示されます。これは何でもあり得ますが、通常は次の 2 つのうちの 1 つが選択されます。
- あなたが必要とすることをサーバが考えた "正しい" ページへのリダイレクト
- ページそのもの
Mozilla は Netscape と同じキーワード・サーバを利用しています。Netscape Internet Keywords FAQ に、リクエストがどう処理されるかについての解説があります。
以下は、インターネット・キーワード・システムの動作方法に関する技術的な解説です : ブラウザのロケーションフィールドに入力された .com / .net / .org / .de / .jp といった拡張子を含まない 1 つあるいは複数の単語からなる文字列は、すべて HTTP を通じて netscape.com のサーバに送られます。このキーワード・サーバは文字列を受け取り、個々の keyword URL ペアのリストと比較します。インターネット・キーワード・システムがそれとマッチするものを見つけた場合、ユーザのブラウザを keyword URL ペアの URL にリダイレクトします。リストにマッチするものがない場合、ユーザのブラウザは、検索語として入力した文字列とともに Netscape Search のページにリダイレクトされます。
注意 : サーバが HTTP リダイレクトを通じて検索結果を提供すると、ユーザの URL バーは keyword: URL に置き換えられてしまうので、その URL 自体を見ることはありません。
プロキシサーバでの問題
インターネット・キーワードは、プロキシサーバに対応するよう設計されていません。これは URL バーの一般的なイベントモデルを改ざんしてしまいます。一部のプロキシサーバは、インターネット・キーワードを使用可能にしているイベントを避けるレスポンスを送ります。たとえば、Netscape のプロキシサーバは、"http://mozilla" へのレスポンスとして "http://www.mozilla.com/" へのリダイレクトを送ります (これは、サーバがプロキシサイドのドメイン予測を密かに実装しているためです)。これは、URL バーを完全な URL に導こうとするもので、失敗した場合はエラーになります。また、それとは別に、インターネット・キーワードを誘発する一般的なネットワークエラーが、プロキシサーバから返されることもあります。これは、URL バーをギブアップさせ、インターネット・キーワードを使えなくしてしまいます (bug 2875 をご覧ください)。
代替利用
設定ファイルの編集に詳しい人は、次のようなことができます。
- Web サイトで独自のキーワードサービスを開発する
- about:config で keyword.url を設定して、プロファイルがそのサービスを利用するように設定する
- "default/prefs/" の内容を編集して、システム上にあるすべてのプロファイルがそのサービスを利用するように設定する
さらに、ブラウザ組み込みコードのビルドに詳しい貢献者は、次のようなことができます。
- 独自のキーワードサービスをデフォルト設定として配布するインストーラを作成する
- 特定のキーワードサービスに関するドキュメントを提供するために (設定パネルの) "More Information" ボタンを変更する (たとえば Netscape 6 はこのボタンから Netscape のページにリンクしています)
制限事項
インターネット・キーワードは、最優先のパーサとして使うことができません。これは、専門的知識のない、もしくは一般消費者ユーザ向けに設計された製品には適しません。(bug 127872 をご覧ください)
インターネット・キーワードは、一部の文字列の組み合わせではうまく動作しません。Bugzilla でバグをチェックして、新しい問題を見つけたらバグを登録してください。
インターネット・キーワードは、Communicator 4 (キーワード: 4xp) との後方互換性に関して正式にはテストされていません。これは、Communicator で動作している一部の (ソースコードの)組み合わせが Mozilla では (従って Netscape 6/7 でも) 動作しないためです。
参考資料
フィードバック及びコメントは Bug 63317 までどうぞ。