Linux システムで C とソケット ライブラリ (またはその他のライブラリ) を使用して Web ブラウザを作成することに興味があります。
私の Web ブラウザーの基本的な使用法は、Web ページの HTML をユーザーが読み取れるものにレンダリングすることです。
誰かに正しい方向に向けてもらいたいだけです。また、C言語でのソケットとそのシステムコールについてもかなりよく理解しています...
正しい方向へのポインタ、え?
Web ブラウザーは、連携して動作するシステムの混乱から成り立っています。最も基本的な Web ブラウザーでさえ、最低限 HTTP/1.1 と HTML を理解する必要があります。
リモート サーバーからページをフェッチし、HTML を DOM に解析し、それをビューポートにレンダリングし、マウス クリックをキャプチャし、ハイパーリンクをアクティブにし、新しいページに移動できる必要があります。
しかし、それしかできないのであれば、Web ブラウザーの言い訳にはなりません。最も単純な Web ブラウザーでさえ、CSS を解析して適用できる必要があります。JPEG、PNG、および BMP 画像の表示、XML の解析、JavaScript の実行、Cookie の処理、オフライン ストレージ、プラグイン (フラッシュなど)、およびその他約 100 万の機能を備えています。
もちろん、私が言おうとしているのは、Web ブラウザーは多くの点で、ソフトウェア プロジェクトの実行方法を学習するには不十分なプロジェクトであるということです。基本的な機能に関連するオーバーヘッドでさえ、壊滅的な打撃を与えるからです。