万维网
The World Wide Web 不等同于互联网,虽然经常被人混用,实际上万维网是运行在互联网之上的,互联网是传递数据的管道。
超文本 hypertext 是万维网非常重要的功能,用来将不同的内容关联起来展示。这就需要每个资源有唯一的链接,这个唯一的地址叫 URL uniform resource locator 统一资源定位器。
DNS 解析域名后找到的是资源服务器,接着用 HTTP hypertext transfer protocol 协议 来传输数据获取资源。HTTP 协议诞生于 1991 年,当时只有一个 GET 方法,用于获取资源。
接着获取的资源需要理解什么是链接,什么是纯文本,因此需要一种标记方法 HTML hypertext markup language 超文本标记语言。HTML 诞生于 1990 年,最初只有 18 个标签,后来发展到 5 版本,有 140 多个标签。
<!-- 标题 -->
<h1>Title</h1>
<!-- 超链接 -->
<a href="https://www.baidu.com">百度</a>
<!-- 列表 ordered list/unordered list -->
<ol>
<li>1</li>
<li>2</li>
</ol>
接着需要一种样式表 CSS cascading style sheets 层叠样式表 来控制 HTML 的样式。CSS 诞生于 1996 年,最初只有 10 个属性,后来发展到 3 版本,有 500 多个属性。
后来又需要一种脚本语言 JavaScript 来控制 HTML 的行为。JavaScript 诞生于 1995 年,最初只有 25 个关键字,后来发展到 6 版本,有 200 多个关键字。
在此之上,所有的展示和交互都是基于 浏览器 的,浏览器是一个复杂的系统,包括 HTML 解析器、CSS 解析器、JavaScript 引擎、渲染引擎、HTTP 请求、HTTP 响应、HTTP 缓存、浏览器 API 等等。1990 年 Tim Berners-Lee 花费了 2 个月开发了第一个浏览器和服务器,同时建立了几个最基本的网络标准 HTTP、HTML、URL,在 1991 年发布,标志着万维网的诞生。
后续浏览器和网站蓬勃发展起来,随着内容的增多,人们迫切的需要搜索功能。如果了解要访问的网站,只需要输入域名即可,但更多的场景是知道要做的事但不清楚哪里可以获取对应的资源。最初的解决方案是有一些网站开始维护一些网站的目录,最著名的是 Jerry and David's guide,后改名为 Yahoo,但这种方式很难维护,因此需要一种更好的方式,这就是 搜索引擎,最初的搜索引擎是 Jonathon Fletcher 在 1993 年创建的 JumpStation,它包含了永不停歇的爬虫、不断扩张的索引和查询索引的搜索算法。早期的算法一般基于搜索词在页面上出现的次数,但这种方式很容易被作弊,因此后来发展出了更多的算法,比如重视反向引用的站点而不是搜索词在此站点的出现次数。
Stanford 大学的两个学生 Larry Page 和 Sergey Brin 开发了 PageRank 算法,它是一种基于网页之间的链接关系来计算网页重要性的算法,这种算法的核心思想是一个网页被越多的其他网页链接,那么这个网页就越重要,逐渐演变为今天的 Google。
网络中立性 net neutrality 是指网络服务提供商必须对所有的数据平等对待,不得区分不同的用户、内容、网站、平台、应用、类型的设备等等。关于它的讨论一直持续至今,背后是对技术创新和商业剥削的反思。