Web 的工作原理(针对后端开发人员)
作为初学者,我们似乎总是听到这些术语:front-end
和back-end
。起初,我们不敢问它们是什么意思。我们通常会谷歌一下。那时我们才知道,前端处理用户界面代码,后端处理服务器端代码。但是,它们就像柠檬水中的柠檬和水。它们结合在一起,创造了我们所知的万维网。
在我之前的文章中,我讨论了前端开发者如何理解 Web,以及互联网主要由客户端和服务器组成。我谈到了请求和响应,以及客户端如何处理响应以提供无缝的用户界面。这就像柠檬水中的柠檬。
现在我们来谈谈水。
服务器
我们知道,当客户端发出请求时,服务器会做出响应。服务器完全负责这些响应的内容。它控制着资源和数据的处理方式,以及如何将它们发送给客户端。我们将介绍最基本的网站服务器配置。
服务器是连接到互联网的机器。它有自己的 IP 地址。你的机器有 IP 地址,但互联网上没有人可以访问你机器上的文件,是因为你的机器上没有运行 Web 服务器软件。
当你的机器上运行着 Web 服务器软件时,它会监听请求,并可以访问机器上特定的文件和文件夹。你可以将不同的主机配置到不同的文件夹。
让我们以我们自己的虚拟网站为例。假设我的 Web 服务器和文件系统配置如下:
如果我请求www.dummysite.com
,不带任何路径,服务器会返回index.html
文件,Content-Type 为 。text/html
同样
,如果我指定路径,比如www.dummysite.com/login.php
,它会遍历我的文件系统,检查是否存在。嗯……我们来看看 login.php 文件是否存在。哦,确实存在!我们把它作为响应发回来,因为它是一个 PHP 文件,所以它足够智能,会返回 Content-Type 为 的响应。style.cssapplication/x-httpd-php
文件也类似。
让我们看看谷歌是如何做到的。
authority = host + 端口号
其中 Host 为域名或者 IP 地址,HTTP 的端口号为80
。
正如您在图片中看到的,authority
据说是www.google.com.
这样的:当它收到相同的请求时,您的网络服务器会说:“啊……google.com?让我们看看文件系统中指定的文件夹。” 因此,一个基本的网络服务器会提供您请求的文件。就是这样,不是很智能的东西。
因此,服务器的关键工作是形成一个统一资源定位器,其由以下内容组成:
- 协议(HTTP、HTTPS)
- 域名(www.dummysite.com)
- 端口号(80,用于 HTTP,对我们不可见)
- 文件路径(/styles/style.css)合在一起就变成了
http://www.dummysite.com/styles/style.css
通过使用此 URL,您实际上是在浏览服务器的文件,并且您的浏览器知道如何处理这些文件,并且您可以查看和与网站交互。
这就是服务器的工作,它与后端代码交互。它适用于大多数网站,可以顺利构建和运行,没有任何麻烦。
但像 Facebook、Twitter 这样的网站肯定不会这么做!它们必须管理用户、帖子、点赞、评论等等。它们不会只用一个 .png 文件来回复。那么,一个复杂的网站该如何处理所有这些事情呢?
我们将在下一篇文章中探讨这个问题!
希望我能让你更容易理解这些术语 :)
到此为止,就此打住!