たとえば、人々が投稿を作成するredditを考えてみましょう。作成されたすべての投稿には、コメントなどを表示できる独自の HTML ページがあります。
これらのページの作成方法に興味があります。ユーザーが投稿を作成すると、投稿が承認されると、そのページが自動的に作成されると思いますが、これがどのように行われるかはわかりません。だから私の質問は次のとおりです:これは正確にどのように行われますか、またはコンセプト全体について完全に間違っていますか?
PHP、Python、Perl (およびその他の多く) などのプログラミング言語に基づいて、(ユーザー セッション、データベース内のデータなどの多くの要因に基づいて) HTML コードを自動的に生成するサーバー サイド コードについてもっと学びたいと思うでしょう。これらの動的に生成された html コードをページ ソースとしてクライアントに送信します。
ユーザーがフォームを投稿すると、 で指定されたページaction
がログインしているユーザーのアカウントを調べて、そのユーザーが持っている権限を判断し、投稿を保存するか拒否メッセージを表示します。
これはデータベースを介して行われるため、user
テーブル (ユーザーとそのログイン資格情報を含む) とpost
テーブル (投稿を含む) が存在します。後者はおそらくユーザーテーブルへの外部キーcreated_user_id
として を持っているので、各投稿には所有者がいます。
これが内部でどのように編成されるかは、サイトが何を行うか、およびそのプログラマーがどのように実装したかによって異なります。したがって、ユーザーごとに許可されている操作を説明する表を作成することもできます。permission
これは特に、レピュテーション スコアに基づいてアクセス許可が付与 (または削除) される Stack Overflow に関連しています。
作成されたすべての投稿には、コメントを表示できる独自の HTML ページがあります
はい。ただし、すべてのページが動的に作成されることに注意してください。これらは (一般的に) 静的ファイルとしてディスクに保存されません。特定のページ タイプに対して、スクリプトを使用して、表示する必要があるものをレンダリングします。したがって、記事とコメントがある場合、URL が調べられ、正しい記事がデータベースで見つかり、関連するコメントがデータベースで見つかり、それらのコンテンツ アイテムを含む必要な HTML がスクリプト出力としてレンダリングされます。
Reddit のような大規模なサイトでは、(個々のフラグメントやページ全体に対して) さまざまなキャッシュ戦略も使用されますが、上記はその要点です。