「フロントエンド」という用語は「クライアント側」と同義ですか?もしそうなら、これは常にそうですか?


18

比較的新しい(独学)Web開発者として、フロントエンドクライアントサイドバックエンドサーバーサイドという用語をよく耳にします。私にとって、フロントエンドとバックエンドは、それぞれクライアント側とサーバー側の同義語でした。

ただし、CodeIgniterのようなMVCフレームワークで作業を開始すると、基本的にエンドユーザーが参照するもの(サーバー側コードを含む)を参照するフロントエンドのインスタンスに遭遇しました。エンドユーザーには表示されません(CMSを含む)。私にとって、クライアント側とサーバー側の意味ははるかに具体的です。それらは非常に明確な線で区切られています。一方、フロントエンドとバックエンドはそうではありません。

他のWeb開発者との会話の中で、彼はCodeIgniter(全体)をフロントエンドと呼んでいましたが、これがループを引き起こしました。私は彼を修正してCodeIgniterが私のバックエンドであると言うのか、それとも2つの用語の定義が完全に間違っているのかを確信できませんでした。

フロントエンドとバックエンドの定義を検索すると、いくつかの点で少し混乱しましたが、いくつかの点が明確になりました。これら4つの用語の間に線が引かれている場所と、Web開発のコンテキスト(具体的にはLAMPスタック)でそれらがどのように結び付いているかを知りたいだけです。


1
「フロントエンド」と「バックエンド」を使用して「フロントフェーシング」と「バックフェーシング」を意味する1人の男と仕事をしました。彼が「正しかった」かどうかは別の質問です
。– user16764

代わりに「事後」という言葉を使用する必要があります。冗談。別のフレーズがあればいいのにと思います。「バックエンド」の同義語は励みになりません。
エリックアロネスティ

回答:


16

これらの用語には正式な定義があるとは思いませんが、ご指摘のとおり、場合によっては重複があります。

front-endそしてclient-side重なります。
server-sideそしてback-endまた重なります。

髪を分割する場合、これらの大まかな境界を提供します。

  • client-sideユーザーのコンピューターで実行されるアプリケーションです。スタンドアロンアプリケーション(より頻繁に)またはWebブラウザベースのインターフェイスを参照する(あまりありません)可能性があります。
  • front-endまた、エンドユーザーに直面し、一般的にWebブラウザベースのインターフェイスで実行されます。シッククライアントと呼ばれることを聞いたことがありませんfront-end
  • back-end別のサーバーまたはユーザーのコンピューターのバックグラウンドで実行されているプロセスとサービスを指します。多くの場合、エンドユーザーのコンピューター上にないプロセスを指します。しかし、あなたが述べたように、重要なことは、エンドユーザーが実行中のプロセスを必ずしも意識していないことです。
  • server-sideは拡張機能ですback-endが、プロセスがエンドユーザーのコンピューターではなく他の場所で実行されているという事実を明示的に強化します。

例として、用語間の混乱を強調するために、Minecraftを例として使用します。

Minecraftには

  • client-side 独自のJVMでローカルにjarファイルを実行するときのアプリケーション。
  • front-end Webブラウザでクライアントアプリケーションを実行することを選択した場合
  • back-end スタンドアロンモードの場合、マシン上でローカルに実行できるプロセス
  • server-side Minecraftサーバーアプリケーションをホストするサーバーにログインすることを選択した場合のプロセス。

Minecraftの統計を掘り下げると、ゲームのコンポーネントclientserverコンポーネントを指定しているだけであることがわかります。それらは、それらのコンポーネントがどこで実行されるかを必ずしも気にしません。


質問に直接回答するには:

「フロントエンド」という用語は「クライアント側」と同義ですか?

並べ替えますが、そうではありません。Webベースの世界以外で議論している場合、用語間に微妙な違いがあります。あなたが厳密にウェブベースの世界にいるなら、はい、それらは機能的に同義です。

もしそうなら、これは常にそうですか?

ウェブの世界では、私はイエスと言うでしょう。他の分野では、私が提供した大まかな定義で説明されているように、ノーと言うでしょう。


それは私が考えたことについてです。私の頭の中でこれを解決してくれてありがとう。
DC_

2
バックエンドは、多くの場合、Webサイト/アプリケーションのクライアント側管理部分を意味するために使用されます。
フロリアンマーゲイン

17

サーバー側はサーバー上で実行されます。クライアント側はクライアントで実行されます。バックエンドはデータを処理します。フロントエンドが表示しています。

このウェブページをご覧ください。データベースからすべてのコメントを取得することは、サーバー側のバックエンド作業です。そのデータをテンプレートにレイアウトすることは、フロントエンドのサーバー側の作業です。AJAX投票ウィジェットと派手なテキスト入力ボックスは、フロントエンドのクライアント側です。


4
フロントエンド/バックエンドコンセプトとクライアントサイド/サーバーサイドコンセプトの直交性を指摘するために+1
フランチェスコフェルトリネッリ

1

一般に、開発者/開発者を説明するためにクライアント側とサーバー側を使用することはあいまいではありません。データをジャグリング/フォーマットしているクライアント側の部分は、バックエンドコンポーネントであると見なすことができます。逆に、バックエンドで発生する傾向のあるすべてのテンプレートがあり、「フロントエンド用」であると、フロントエンドのJavaまたはC#の開発と言われます。まれですが、仕事の説明で見ました。

しかし、はい、一般的にフロントエンドは相互作用が発生する部分です。バックエンドは、そのすべての相互作用が有用なものに変わる部分です。


0

この質問はやや古いですが、2cを追加します。

私自身のWeb開発では、「フロントエンド」という用語は、ブラウザでしばらく処理されるコードまたはその他のリソースを意味します。今、私は「クライアント」という用語を使用しています。Webアプリケーションを実行するとき。(シングルページアプリ)

単にバックエンド側に「フロントエンド」あるからです。これは一般に、アプリケーションの(ブラウザへの)出力を担当する部分を意味します。したがって、「フロントエンド」は実際には2つの異なることを意味します。ただし、「クライアント」という用語は、実際のクライアント(この場合はブラウザー)に関連するものをより明確に表すものです。

PS:まあ、多分私は今、ニックネームを "client_dev"に変更する必要があるかもしれません;)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.