web-dev-qa-db-ja.com

常にウェブサイトのサーバー側をプログラムする必要がありますか?

友達のための音楽プロジェクトのウェブサイトを作成しようとしています。それは今のところかなり単純なはずです:動的コンテンツ(ツアーの日付など)はなく、いくつかの埋め込みサンプル曲またはSoundCloudリンクにすぎません。バニラJavaScriptとBootstrapまたはレスポンシブグリッド用のFoundation以外のものを使用することは期待していません。

これで十分ですか? HTML、CSS、およびJSファイルを単にホストにアップロードしてそれで完了できますか、またはNodeまたはPHPでバックエンドサーバーをプログラムするために時間をかける必要がありますか?

38
Deegriz

サーバー側のコードが必要かどうかわからない場合は、おそらく必要ありません*

*警告:コンテンツ、データ、または機能へのアクセスを内部で制御する場合、サーバーサイドコードはセキュリティに不可欠です。 (必ずしもyourサーバーである必要はありません。最後の段落を参照してください。)

サーバー側のテクノロジーを使用するとどのような問題が解決するかを自問してください。何も考えられない場合(そしてあなたの場合は私も考えられません)、それらは必要ありません。

クライアント側のコードだけを使用しても、想像以上に多くのことが可能であることに注意してください。 AngularJSやReactJSなどのJavaScriptフレームワークを使用すると、Ajaxを使用するAPIを通じてサードパーティの動的コンテンツと統合できます。 (これには、独自のセキュリティを処理できるAPIへのフックが含まれます。)

86
Tim Grant

静的サイトジェネレータについて読んでください。これらを使用すると、HTMLを手動で作成するのではなく、プログラムで(テンプレートやデータなどを使用して)サイトを作成できます。結果は、バックエンドを必要としない静的なHTMLとCSSのセットです。

https://www.staticgen.com/ は、このようなオープンソースジェネレーターのリストとランク付けを行います。クローズドソースの製品も存在する可能性があります。

56
9000

十分な場合は、静的サイトのみを使用する必要があります、または 静的サイトジェネレーター を使用します。どうして? 保守性。コードにバグがあります。数週間ごとに別のWordPressセキュリティホールが見つかりました。一般的なCMSを使用する場合は、常にパッチを適用する必要があります。それ以外の場合、友達のWebサイトには、違法薬物の宣伝、ISIS宣伝、訪問者のコンピュータにインストールされているマルウェアまたはそれより悪いもの。定期的にパッチを適用しても、手遅れになる可能性があるため、ハッキングを常にチェックする必要があります。このCMSを保護する方法があります。「セキュリティプラグイン」をインストールし、ウェブアプリケーションファイアウォールを設定してくださいmod_securityなどのように、すべての作業が必要です。また、常に更新する必要があります。mod_securityルールによってWordPressのプラグインが壊れる場合があります。それを分析して修正する必要があります。

誰もそのサイトをハッキングしたくないと思うかもしれません。しかし、一般的なCMSシステムに見られる一般的なセキュリティホールのために、Webをクロール/検索し、そのCMSを使用するすべてのサイトをハッキングする自動ボットが間もなく登場します。彼らは単にリンク/マルウェア/宣伝を広めたいだけです。

静的サイト(手動またはジェネレーターで作成)では、その問題はありません。

独自のバックエンドを実装する場合、セキュリティホールも存在します(完璧なものはありません)が、その小さなWebサイトで悪用される可能性はほとんどありません。しかし、何を実装したいですか?友人がツアーの日付を自分で変更できるエディタを作成したい場合は、彼があなたの助けなしに簡単に使用できるようになるまでにどれくらい時間がかかるか考えてください。その時間予算で彼の日付をすばやく何回変更できますか?

私の意見では、静的HTMLは「古い」ため、今日では多くの人がすべてのサイトにCMSシステムを使用しています。 HTML5では不可能なことは何も必要ない場合は、サーバー側のコードを使用してください。しかし、それが必要なければ、それなしで多くの時間を節約できます。

必要なときだけバックエンドプログラミングを行う必要があります。

ただし、メール送信フォームなどの基本的な機能でさえ、通常は基本的なバックエンドプログラミングが必要です。それが単なる表示サイトであれば、はい、それは問題ありません。

3
deek

必ずしもそうとは限りませんが、サイト全体をプレーンHTMLで作成すると、遭遇する可能性のあるいくつかの問題があります。

多くのサイトでは、複数のページに同じメニュー、ヘッダー、フッターの要素があります。これらをあるページから別のページにコピーして貼り付けるだけの場合、サイトが大きくなり、これらの領域に変更を加え続ける必要があるため、これは面倒でエラーが発生しやすくなります。

サーバーサイドプログラミングが一般的になる前は、これに対処する一般的な方法の1つは、framesを使用してこれらの領域をすべてのページに埋め込むことでした。これは数年前に支持されなくなったので、今はお勧めしません。代わりに、単純なサーバー側コードを記述して、これらの共通要素をすべてのページに表示できます。

既製のCMSの使用を推奨している他のユーザーにも同意します。

2
bdsl

サーバー側を使用する必要があるかどうかわからない場合は、おそらく必要ないでしょう。 Webサイトのクライアント側でできることはたくさんあります。

Jsを使用すると、bootstrapあなたはまともなウェブサイトを作成できます

0
Ishan Shah