0

我有兴趣在 Linux 系统下使用 C 和套接字库(或任何其他库)创建 Web 浏览器。

我的 Web 浏览器的基本用途是将网页的 HTML 呈现为用户可读的内容。

我只是希望有人指出我正确的方向。我对 C 语言中的套接字及其系统调用也有很好的理解......

4

1 回答 1

3

指向正确方向的指针,嗯?

好吧,网络浏览器由一堆一起工作的系统组成。即使是最基本的网络浏览器也必须至少理解 HTTP/1.1 和 HTML。

它必须能够从远程服务器获取页面,将 HTML 解析为 DOM,将其渲染到视口,捕获鼠标点击,让它们激活超链接并导航到新页面。

但是,如果它只能做到这一点,那对于网络浏览器来说就是一个糟糕的借口;即使是最简单的网络浏览器也应该能够解析和应用 CSS;显示 JPEG、PNG 和 BMP 图像、解析 XML、执行 JavaScript、处理 cookie、离线存储、插件(如闪存)以及大约一百万种其他东西。

当然,我要说明的一点是,Web 浏览器在很多方面都不是学习软件项目的好项目,因为与基本功能相关的开销也很严重。

于 2012-04-22T17:58:06.590 回答