Web 的工作原理,第二部分:访问 URL 时会发生什么
已发表: 2016-12-06在上一篇文章中,我们讨论了 Web 是如何形成的。 在这篇文章中,我们将试一试,看看当您使用浏览器访问 URL 时会发生什么。 我们还将了解 Web 中使用的当代技术以及它们如何组合在一起。
从您按下 Enter 按钮到查看网页,所涉及的技术非常多。 在上一篇文章中,我们讨论了超文本和 HTTP,但这只是开始:
- Web 服务器(如 apache2 和 nginx)实现了 HTTP 协议以及其他一些功能,使 Web 浏览器能够连接、请求和接收 Web 数据。 HTTP 是消息、网页、图像和资源在 Web 服务器和浏览器之间“传输”的通道。
现代网络要求很高,现代网络服务器已经应对这一挑战。 可扩展性和安全性是当今世界的两个主要问题。 现代 Web 服务器具有高度可扩展性(能够同时处理超过 10,000 个连接),提供多种负载平衡选项,支持 SSL/TLS 和 HTTP/2。 毫无疑问,HTTP/2 对 HTTP/1.1 的主要改进是卓越的数据包流管理。 视频流在今天无处不在,HTTP/1.1 无法充分满足当今所有不同设备、网络容量和在线 Web 用户数量的需求。
- HTML (超文本标记语言)是一种使用标签来表示您的网络浏览器可以理解的结构化超文本文档的语言。
它的最新版本 HTML5 引入了许多语言改进和清理,但最令人印象深刻的是原生视频和音频支持、2D 和 3D 图形以及本地数据库存储。 这些改进有效地淘汰了 Flash 和 Silverlight 等多媒体技术。
- CSS (层叠样式表)是网页设计师使用的一种技术,可以使许多网页的视觉更改更容易。
CSS 代码可以驻留在 HTML 中,或者通常情况下,它们是单独的文件,由 HTML 页面引用。 CSS 的用处在于它将内容与表示分离,为网页设计师提供了一个强大的工具来集中管理网站的所有美学细节。
- 后端(例如 PHP 或 Java)是与 HTML 混合的代码,在计算结束时由 Web 服务器执行。
现在所有的网站都是动态的; 这意味着不再有任何简单的 .html 文件提供给浏览器。 所有现代语言,加上称为 Web 框架的软件库,都可以用作网站的后端解决方案。 最近发布的 PHP 7 及其引入的出色性能改进和功能以及 Facebook 的 HHVM 都将整个过程提升到了一个新的水平。
- 前端(Javascript) 也是与 HTML 混合的代码,但它在您的计算机上本地执行,由您的网络浏览器执行。
也许现代网络中最令人惊讶和令人印象深刻的发展是 Javascript。 它从用于制作菜单和显示弹出窗口的 Java 的小弟,变成了一种同时用于客户端和服务器的强大编程语言。 如今,它可以在网络浏览器上以极快的速度执行任何操作。 谷歌的 V8 Javascript 引擎是一个重大的技术游戏规则改变者。
当您访问 URL 时会发生什么
网络是不同技术的聚宝盆,但有两个概念的基本功能即使在今天也没有改变。 Web 浏览器和 Web 服务器。 它们在“旧”客户端/服务器模型上运行,如下所示:客户端使用地址(IP 或名称)连接到服务器,并请求某些内容。 然后,服务器响应客户端等等。 客户端连接到服务器,但不是相反。 虽然,今天的网络技术已经显着改变了这个模型,但我们将使用它以简化的方式来解释这个过程。
所以,你启动你最喜欢的浏览器并访问一个网页。 从您按下Enter键到您最终看到显示的页面,会发生以下情况:
- 您的浏览器首先会调用一个为您的计算机配置的名为 DNS 解析器的软件模块,并询问与您输入的 URL 对应的 IP 地址。
DNS(域名系统)是将计算机名称(如www.pressidium.com )映射到 IP 地址的核心 Internet 服务。 IP 地址是连接到 Internet 的计算机可以理解并可以连接的地址。 我们将在下一篇文章中探讨它是什么以及它是如何工作的。 - 然后,您的浏览器使用端口 80 或 443 启动到该 IP 地址的连接。
IP 地址表示服务器,而端口号表示您要连接的服务。 默认情况下,所有 Web 服务器在端口 80 上运行,而端口 443 用于安全 Web 连接。
Web 服务器处理您输入的 URL 并将控制权交给后端。 后端代码生成 HTML 页面并将其交给 Web 服务器。 然后,Web 服务器最终通过 HTTP 通道将 HTML 页面发送到浏览器。 - Web 服务器发回 HTML 所需的毫秒数内发生了很多事情。 网站中的后端代码通常连接到数据库、执行查询、取回数据、联系其他后端服务并最终将所有内容组装成 HTML 文档。它实际上并不是您请求的离散文件,而是动态资源,它是使用各种不同的技术和组件动态生成的。
- 您的 Web 浏览器接收 HTML 页面,关闭与 Web 服务器的连接,然后将其呈现在您的屏幕上。 它执行 HTML 中存在的 Javascript 代码。现代网页设计遵循一种称为响应式设计的方法。 这种方法使用 HTML、CSS 和 Javascript 来动态调整网页的布局,具体取决于您用于浏览的设备。 如今,随着移动设备和平板设备的爆炸式增长,这一点变得非常重要。
下一步是什么?
到目前为止,我们已经简要介绍了各种现代 Web 技术,以及访问 URL 时会发生什么。 毫无疑问,Web 技术复杂且数量众多,仅一篇文章无法令人满意地介绍。 通过本系列文章,我们主要旨在为您提供 Internet 和 Web 的“鹰眼”视图。
在这个有趣系列的下一部分中,我们将访问另一个重要的 Internet 基础设施,即域名系统。 没有它,什么都不会真正起作用! (至少对我们人类而言)。