ウェブブラウザ
ウェブブラウザ(インターネットブラウザ、web browser)とは、パソコンやスマートフォン等を利用してWebサーバに接続するためのソフトウェアであり、ウェブページを表示したり、ハイパーリンクをたどったりするなどの機能がある。単にブラウザ(ブラウザー)とも呼ばれる。
主なウェブブラウザとして、Google Chrome、Safari、Microsoft Edge、Mozilla Firefox、Opera、Internet Explorer、Vivaldi等がある。Windows 7など古いOSではサポートが終了しているものがある。
構造と動作[編集]
大まかに言うと、ウェブブラウザには以下の3つの機能がある。
- HTTPによりサーバと通信し、コンテンツを取得する。接続先を指定する際には、Uniform Resource Identifier(URI)を使用する。
- 取得したコンテンツに対して、その種類(HTML/XHTML/XML、文書、画像等)に応じた構文解析を行う。
- 構文解析の結果を基に文字や画像を適切に配置し、あるいは文字の大きさを調整したり色を付けるなどして描画する。
取得したHTMLは、ウェブブラウザのレイアウトエンジンに渡され、マークアップからインタラクティブな文書に変換される。Flashアプリケーションや Javaアプレットに対応するプラグインが用意されている場合は、それらを表示・実行することができる。未対応の種類のファイルに遭遇した場合は、ダウンロードして保存するか、他のプログラムを起動して開こうとする。
HTMLには、他のコンテンツへのハイパーリンクを記載することができる。リンクにはURIが含まれており、リンクをクリックすると、ウェブブラウザはそのURIで示されるコンテンツを取得する。
サーバ等への接続方法[編集]
例えば、ブラウザのロケーションバーにhttp://en.wikipedia.org/と入力したとする。Uniform Resource Locator(URL)のプレフィックスであるURIスキームによってURLをどう解釈するかは決まっている。古典的なURLは定義名 http:で始まり、Hypertext Transfer Protocol(HTTP)を使用してサーバに接続する。必須要件ではないが、多くのウェブブラウザは様々な定義名に対応しており、HTTPS用のhttps:、File Transfer Protocol用のftp:、内部ファイル用のfile:などとも接続できる。
ウェブブラウザが直接扱えない定義名は、ブラウザ内部で定義された、他のアプリケーションにそのまま渡されることが多い。例えば、mailto:で始まるURIは既定の電子メールクライアントに渡され、news:で始まるURIは既定のニュースグループリーダに渡される。OSのシェルがURIスキームを解釈しウェブブラウザなど適切なアプリケーションに渡される場合もある。
機能[編集]
ウェブブラウザの機能は、最小限の文字を用いたユーザインタフェース(UI)から、多様なファイル形式やプロトコルに対応する高機能なものまで幅広い。電子メール、ネットニュース、Internet Relay Chat(IRC)等に対応するコンポーネントを含むウェブブラウザは「インターネットスイート」と呼ばれることもある。
主要なウェブブラウザは同時に複数の情報リソースを扱うことができ、別窓で表示したり、タブを使って同じウィンドウ内に表示したりする(タブブラウザ)。また、表示したくないポップアップ広告を自動的にブロックする機能もある。
ユーザがブックマークしたウェブページの一覧を表示する機能があり、素早くそれらのウェブページに戻ることができる。ブックマークはInternet Explorerでは「お気に入り」と呼ぶ。さらに、フィードリーダが組み込まれているウェブブラウザも多い。Firefoxではフィードは"live bookmarks"という形式で扱われ、フィードにおける最近の項目と対応するブックマークのフォルダのように機能する。Operaではフィードの内容を格納し表示する従来型のフィードリーダを採用している。
ユーザインタフェース(UI)[編集]
多くの主要ウェブブラウザのUIには、以下のような共通の要素がある。
- 「前へ/次へ」のボタン。前のリソースに戻るボタンと次のリソースに進むボタンである。一部では一つに統合されているものもある。
- 「更新」のボタン。現在のリソースを再ロードする。
- 「中止」のボタン。リソースの読み込みを取り消す。一部では「更新」ボタンと統合されている。
- 「ホーム」のボタン。指定したホームページに戻る機能を提供する。
- アドレスバーは、Uniform Resource Identifier(URI)の入力のためにあり、入力された URI が指すリソースを表示する。検索バーと統合されている場合もある。
- 検索バーは検索エンジンへの入力のためにある。アドレスバーと検索バーが統合されている場合もある。
- サイドバー - ブラウザによって名称は異なる。ウィンドウの左端・右端などにあり表示/非表示を切り替えられる。頻繁に使うが常に表示するほどではない要素(ブックマーク・履歴など)に簡単にアクセスできるようにしている。
- ステータスバーはリソースの読み込み状況を表示したり、カーソルの位置にあるリンクのURIを表示したり、ページの拡大機能を提供したりする。
- ブラウザによってはスキンで外観を変更できる。
主要なウェブブラウザはウェブページ内のインクリメンタル検索機能も持っている。
多くのタブブラウザには以下のような共通の要素がある。
- タブバー - 複数開いているタブを切り替える。タブをピン留めする・グループ化するなどの管理機能を持つものもある。
- 新しいタブ - タブブラウザで新しいタブを開いた時、単にホームページや空白のページが表示される場合もあるが、Opera 9.2で導入された「スピードダイヤル」を皮切りに多くのブラウザで様々な機能が提供されるようになった。登録したページ(ブックマーク)や頻繁に表示したページの一覧など。
2000年代末期、Google Chromeの登場や画面解像度が低いネットブックの普及などに伴い、UIを整理してページの表示領域を極力拡大する傾向が主流になった。アドレスバーに検索などの機能を統合、ステータスバーの廃止、ボタンの数を最小限にするなどである。
特殊なUIを備えたブラウザ[編集]
- テキストベースブラウザ(テキストブラウザ):ウェブページのテキストのみをレンダリングするウェブブラウザ。CUI環境で動作させることができる。スタイルシートや画像、動画といったテキスト以外のコンテンツはほぼ無視されるが、その分必要リソースが少なく動作速度も速い傾向にある。アクセシビリティの観点から、音声ブラウザ等に対応させるためのテストにも利用される。
- 音声ブラウザ:コンテンツを音声として読み上げるブラウザ。原理はテキストブラウザと同じだが、読み上げ機能に特化している。
- ヘッドレスブラウザ:通常のUIを備えず、レンダリング結果を画面に表示する代わりにファイル等で記録するウェブブラウザ。ウェブコンテンツの制作者がテストに利用することが多い。いわゆるウェブクローラーはそれ自身がヘッドレスブラウザとして動作している。 通常のブラウザと同じレンダリングエンジンを内蔵しており、単にHTMLを取得しただけではわからないスクリプトの動作結果やCSSによる装飾結果も確認できる。ヘッドレスブラウザはコマンドのパラメーターや、コンテンツ本体とは別に用意したスクリプト言語等を利用して制御する。
- 専用ブラウザ:特定ウェブサイトの閲覧に特化したブラウザ。ブラウザ独自のGUIを内蔵しているものでは、汎用ブラウザよりも操作性が優れる。2ちゃんねるブラウザのようにサーバから直接ローデータを取得してレンダリングするものや、HTTP以外の手段で通信しているものもある。 汎用ブラウザの拡張機能として実装されているケースもある。回線速度やハードウェアのリソースが潤沢ではなかった時代では有力な実装方法であったが、開発コストが大きい為廃れる傾向にある。 なお、スマートフォン用の「アプリ」は専用ブラウザ的な運用がなされているが、実態は特定サイトに接続を固定化された汎用ブラウザという事も珍しくない。
- 最小主義のブラウザ:UNIX哲学に基づいたブラウザ。ウェブページの解釈・表示のみを行ない、例えばタブやボタンを持たない。タイル型ウィンドウマネージャと併用されることが多い。UNIX哲学では、「一つのことを、うまくやれ」の精神が重要視される。Uzbl(英語版)等一部の(特にX向けの)ブラウザはこの教義をかなり厳密に守っていると言える。Uzblは2017現在も開発が続いているWebkit解釈によるウェブブラウザである。このブラウザは下部のステータスバーと呼ばれる一行の表示を除き、タブやその他一切のUIを持たない。操作は設定ファイル(多くの場合、
~/.config/uzbl/config
というテキストファイルである)で定義され、標準ではVi風の鍵盤操作が定められている。最小主義と言ってもWebブラウザの本義は満たしており、UzblはAcid3を満点で合格している。これらのブラウザはウィンドウマネージャ(親和性の高いものにawesome、i3が挙げられる)によってタブブラウザのように操作できる。
ウェブ標準への対応[編集]
初期のウェブブラウザが対応していたHTMLは非常に単純なものだった。ウェブブラウザの発展によりHTMLの標準でない方言が生まれ、互換性問題が大きくなっていった。最近のウェブブラウザは標準および事実上標準のHTMLとXHTML、それらに高度な表現や機能を付加するCSS・JavaScriptなどに対応している。
表示したときの見た目はどのブラウザでも同じであるべきだが、そうでない場合もある。
拡張機能[編集]
ウェブブラウザが標準では持たない機能を追加するアドオン。
Firefox・Google Chrome・Safari・Opera等には独自の拡張機能フォーマットがあり、ブラウザの開発元が用意したポータルサイトで配布される。多くは企業ではなくユーザーの有志が制作しており、UIの改善・広告ブロックなど様々な機能を提供する。
プライバシーと安全性[編集]
多くのウェブブラウザはHTTPSに対応しており、ウェブキャッシュやCookieや閲覧履歴を素早く簡単に消去する機能もある。しかしそれだけでは対処できないセキュリティのリスクに晒され、マルウェアに悪用されたり、(現在は死語になったが)ブラウザクラッシャーなどでブラウザのみならずオペレーティングシステムをフリーズさせられる場合がある。ブラウザ自体にもブラックリストで悪質なサイトへのアクセスを防止する・自動アップデートなどのセキュリティ向上機能が追加されているが、アンチウイルスソフトウェアなどでオペレーティングシステム(OS)全体を保護するのが望ましい。