让我们以 reddit 为例,人们在哪里创建比方说的帖子。创建的每个帖子都有自己的 html 页面,您可以在其中查看评论等。
我对如何创建这些页面感兴趣,我会假设当用户创建帖子时,当帖子被授权时,它的页面会自动创建,但我不知道这是如何完成的。所以我的问题是:这究竟是如何完成的,或者我对整个概念是否完全错误,如果是这样 - 那么最好的方法是什么(为数据库中授权的每个帖子创建单个 html 页面)?
您可能想了解更多关于基于自动生成 html 代码的编程语言(例如 PHP、Python、Perl(和许多其他语言)的服务器端代码(基于包括用户会话、数据库中的一些数据等在内的许多因素)并将这些动态生成的 html 代码作为页面源发送给客户端。
当用户发布表单时,在 中指定的页面action
将查看登录用户的帐户,确定他们拥有哪些权限,然后保存帖子或呈现拒绝消息。
这是通过数据库完成的,因此会有一个user
表(包含用户及其登录凭据)和一个post
表(包含帖子)。后者可能有一个created_user_id
作为用户表的外键,因此每个帖子都有一个所有者。
这在内部是如何组织的,取决于站点做什么,以及它的程序员如何实现它。因此,您可能还有一个permission
表格,为每个用户描述他们被允许做的事情。这在 Stack Overflow 中尤为重要,根据您的信誉得分授予(或删除)权限。
创建的每个帖子都有自己的 html 页面,您可以在其中查看评论
是的,但请记住,每个页面都是动态创建的。这些(一般来说)不作为静态文件存储在磁盘上:对于给定的页面类型,脚本用于呈现应该看到的内容。因此,如果有故事和评论,则会检查 URL,在数据库中找到正确的故事,在数据库中找到相关的评论,然后将包含这些内容项的必要 HTML 呈现为脚本输出。
像 Reddit 这样的大型网站也会使用各种缓存策略(针对单个片段和整个页面),但以上是它的要点。