大まかに言うと、ウェブブラウザには3つの機能がある。
主としてHTTPによりサーバと通信し、コンテンツを取得する。接続先を指定する際には、Uniform Resource Identifier (URI) を使用する[2]。
取得したコンテンツに対して、その種類(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) 等に対応するコンポーネントを含むウェブブラウザは「インターネットスイート」と呼ばれることもある[3][4][5]。 主要なウェブブラウザは同時に複数の情報リソースを扱うことができ、別窓で表示したり、タブを使って同じウィンドウ内に表示したりする(タブブラウザ)。また、表示したくないポップアップ広告を自動的にブロックする機能もある[6][7][8][9]。 ユーザがブックマークしたウェブページの一覧を表示する機能があり、素早くそれらのウェブページに戻ることができる。ブックマークはInternet Explorerでは「お気に入り」と呼ぶ。さらに、フィードリーダが組み込まれているウェブブラウザも多い。Firefoxではフィードは live bookmarks という形式で扱われ、フィードにおける最近の項目と対応するブックマークのフォルダのように機能する[10]。Operaではフィードの内容を格納し表示する従来型のフィードリーダを採用している[11]。 多くの主要ウェブブラウザのUIには、以下のような共通の要素がある[12]。 主要なウェブブラウザはウェブページ内のインクリメンタル検索機能も持っている。 多くのタブブラウザには以下のような共通の要素がある。 2000年代末期、Google Chromeの登場や画面解像度が低いネットブックの普及などに伴い、UIを整理してページの表示領域を極力拡大する傾向が主流になった。アドレスバーに検索などの機能を統合、ステータスバーの廃止、ボタンの数を最小限にするなどである。
サーバ等への接続方法
機能
ユーザインタフェース (UI)
「前へ/次へ」のボタン。前のリソースに戻るボタンと次のリソースに進むボタンである。一部では一つに統合されているものもある。
「更新」のボタン。現在のリソースを再ロードする。
「中止」のボタン。リソースの読み込みを取り消す。一部では「更新」ボタンと統合されている。
「ホーム」のボタン。指定したホームページに戻る機能を提供する。
アドレスバーは、Uniform Resource Identifier (URI) の入力のためにあり、入力された URI が指すリソースを表示する。検索バーと統合されている場合もある。
検索バーは検索エンジンへの入力のためにある。アドレスバーと検索バーが統合されている場合もある。
サイドバー - ブラウザによって名称は異なる。ウィンドウの左端・右端などにあり表示/非表示を切り替えられる。頻繁に使うが常に表示するほどではない要素(ブックマーク・履歴など)に簡単にアクセスできるようにしている。
ステータスバーはリソースの読み込み状況を表示したり、カーソルの位置にあるリンクのURIを表示したり、ページの拡大機能を提供したりする。
ブラウザによってはスキンで外観を変更できる。
タブバー - 複数開いているタブを切り替える。タブをピン留めする・グループ化するなどの管理機能を持つものもある。
新しいタブ - タブブラウザで新しいタブを開いた時、単にホームページや空白のページが表示される場合もあるが、Opera 9.2で導入された「スピードダイヤル」を皮切りに多くのブラウザで様々な機能が提供されるようになった。登録したページ(ブックマーク)や頻繁に表示したページの一覧など。
特殊なUIを備えたブラウザ
テキストベースブラウザ:(テキストブラウザ) ウェブページのテキストのみをレンダリングするウェブブラウザ。CUI環境で動作させることができる。スタイルシートや画像、動画といったテキスト以外のコンテンツはほぼ無視されるが、その分必要リソースが少なく動作速度も速い傾向にある。 アクセシビリティの観点から、音声ブラウザ等に対応させるためのテストにも利用される。
音声ブラウザ:コンテンツを音声として読み上げるブラウザ。原理はテキストブラウザと同じだが、読み上げ機能に特化している。
ヘッドレスブラウザ:通常のUIを備えず、レンダリング結果を画面に表示する代わりにファイル等で記録するウェブブラウザ。ウェブコンテンツの制作者がテストに利用することが多い。いわゆるウェブクローラーはそれ自身がヘッドレスブラウザとして動作している。 通常のブラウザと同じレンダリングエンジンを内蔵しており、単にHTMLを取得しただけではわからないスクリプトの動作結果やCSSによる装飾結果も確認できる。ヘッドレスブラウザはコマンドのパラメーターや、コンテンツ本体とは別に用意したスクリプト言語等を利用して制御する。
専用ブラウザ:特定ウェブサイトの閲覧に特化したブラウザ。ブラウザ独自のGUIを内蔵しているものでは、汎用ブラウザよりも操作性が優れる。2ちゃんねるブラウザのようにサーバから直接ローデータを取得してレンダリングするものや、HTTP以外の手段で通信しているものもある。 汎用ブラウザの拡張機能として実装されているケースもある。回線速度やハードウェアのリソースが潤沢ではなかった時代では有力な実装方法であったが、開発コストが大きい為廃れる傾向にある。 なお、スマートフォン用の「アプリ」は専用ブラウザ的な運用がなされているが、実態は特定サイトに接続を固定化された汎用ブラウザという事も珍しくない。
最小主義のブラウザ