从开发人员的角度来看,后端究竟是如何工作的?

How exactly does backend work from a developer perspective?

有大量视频和网站试图解释后端与前端,但不幸的是,none 其中的解释方式您知道如何开发后端驱动的网站(至少我没有没发现什么好东西)。

所以,我想确保我理解它,并恳请您就此主题确认或纠正我。

示例:

我想组装 Mini - Google。我有一个包含 1000 个存储网站的数据库。


假设 #1:
每次我在搜索栏中输入内容时,自动填充建议都会发生变化。这意味着,每次我输入时,都会调用另一个网站/API returning 当前的自动填充建议。在开发者网站上,这意味着网站,例如是一个 Python 脚本,它以当前输入的单词作为参数调用,并且 returning 所有建议,例如JSON:

// Client Side Script
function ontype(input):
    suggestions = get("https://api.googlemini.com/suggestions?q=" + str(input))
    show(suggestions)

假设#2:
这也意味着我可以手动调用包含 Python 脚本的网站,提供一个随机词,它总是 return 一个 JSON 包含该词的自动填充建议。


问题 #1:
如果 A#1 结果是 trueA#2 结果是 false,我怎么能阻止用户在仍然 [=78= 的情况下随机访问“API” ]在脚本调用时显示结果?


假设 #3:
按回车键后,我的网站 googlemini.com/search?... 将被调用。由于 google.com/search 每次搜索新查询(或转到第 2 页等)时都会重新加载,我假设,当服务器收到客户端请求时,不会调用 API,它首先搜索其数据库,对结果进行排序,然后 return 作为一个整体 html 作为静态网页:

// Server Side Script
@app.route("/search")
function oncall():
    query = getparam("q")
    results = searchdatabase(query)
    html = buildhtml(results)
    return html

问题 #2:
通常,我听说(或者至少是这样理解的)数据库和网络服务器是两个独立的服务器。那将如何工作?这是否意味着数据库服务器也需要通过网络访问(当然它会有安全层等,但从技术上讲它会)?我如何从网络服务器访问数据库服务器?


问题 #3:
在技​​术基础上,还有其他构建后端服务的方法吗?


就是这样。我也很感激任何建议,如视频、网站或其他学习如何从技术上设置和/或保护后端服务器的建议。

提前致谢。

对于你的第一个问题,你可以是的,有一种方法可以防止误用。 您可以做的是向 api 添加标识符,例如 Auth 令牌以识别用户,并且每次用户访问 api 时,只要计数超出限制,您就可以将计数保存在服务器 n 上您可以拒接来电的时间跨度。并且可以以这样一种方式设置限制,即不会给诚实的用户带来麻烦,也不会惩罚错误的用户。还有更复杂有效的方法,但这是基本思想。

关于问题编号,让我向您解释一个简单的概念,数据库是一种非常高效、资源丰富且昂贵的数据存储解决方案,我们从不希望它在一般意义上用作变量存储或其他东西。我们总是想在调用中访问数据库获取数据处理数据更新数据。因此,我们以数据方式进行操作,您不必为数据库创建单独的服务器。问题是我们主要使数据库可以被各种平台访问android、ios、windows。所以最好添加一些抽象并将数据库作为一个单独的实体。

最后,我不太清楚你所说的其他是什么意思,但我列出了一些后端技术,其中一些可能会单独使用,其中一些也可能会单独使用,而不是其他一些工具。

  • Django
  • FLask
  • Djnago 休息
  • GraphQL
  • SQL
  • PHP
  • 节点
  • Deno