Web開発の世界では、バックエンド/サーバー側のプログラマーは正確に何をしますか?全体の概念がよくわからないのではないでしょうか。
HTML/CSSレイアウトとWebサイトのデザイン、およびSQLをPHP(まだ私のスキルを向上させるために、私にとってはサイドプロジェクトのようです)で少しだけ行いました。)少量のJavaScript/JQuery。
しかし、私はスクリプト言語(Rails/Python/etc)などの「バックエンド」作業を理解していません。あなたは彼らと一体何を「やっている」のですか?
基本的な前提は次のとおりです。
ユーザーは自分の入力を与え、それをある種のネットワークを介して送信し、サーバーは入力に応じて魔法をかけます。
基本的に、すべてのセキュリティと検証をサーバー側で実行する必要があります。控えめなフォーム検証のように、クライアント側で実行される機能を使用します(ただし、サーバー側も検証する必要があります!)。
大きな質問:なぜ?
ユーザーは自分のマシンの情報を変更できます。例として、ユーザーがゲームを「ハッキング」できるようにメモリ値を変更するゲームトレーナーをご覧ください。マシンの物理的な前提でコアのことを行うと、誰かがセキュリティチェックを改ざんする可能性が大幅に低下します。
PHPを使用したことがあれば、サーバーサイドでの作業は完了です。
簡単に言えば、クライアント側のコードはコンピューター、Webブラウザーで実行され、サーバー側のコードはインターネット上のコンピューターで実行され、サーバー側の計算結果はインターネット経由でユーザーのコンピューターに送信されます。ブラウザ。
SQLステートメントを実行するPHP=コードを記述した場合、SQL呼び出しはリモートコンピューター(サーバー)で行われ、その結果(通常は生成されたHTMLの形式)が送信されます。インターネットをブラウザに。
一方、JavaScriptはブラウザーで実行されます。 CSSも同様です。
詳細については、 クライアント側とサーバー側のプログラミングの違い を確認してください。
私の意見では、サーバー側の作業(既に言及されているのは、Webサイトにアクセスしているサーバー上で実行されるすべてのものです)がサイトに実生活を与えるものです。多くの機能はクライアント側のテクノロジーを使用して実現できますが、私の意見では、これははるかに複雑なアプローチであり、クライアントがクライアント側のコードにあるすべてのものにアクセスできるという点で安全性は低くなります。 PHPとASPは、ある種の計算アクティビティを実行した後、ブラウザにWebページコンテンツを提供することをほぼ排他的に意図したハイブリッドプログラミング言語です。作業を開始するときPython、Ruby、Java、またはその他のプログラミング言語を使用すると、より多くの機能と能力を利用できますが、プロセスの最後に結果の情報をクライアントに送信するための作業が少し増えます。何を使用するかを選択する際に使い慣れた言語。
システムのクライアントと対話するシステムを設計するときに、フロントエンドのものを設計します。ここで、Wordクライアントはかなり大きいことに注意してください。ただし、基本的には、外部へのインターフェースを提供するときにフロントエンドで作業していることを意味します。
ほとんどのウェブサイトはフロントエンドにすぎません。つまり、外部に情報を提供し、ほとんどの場合、この情報はHTMLファイルのテキストとして非常に単純に保存できます。
サービスを提供し、フロントエンドが消費する機能をカプセル化する必要がある場合は、バックエンドを設計します。これにより、ワークロードの一部をクライアント(フロントエンド)からサーバー(バックエンド)に置き換えることができます。これは、システムに同時にアクセスできるさまざまなクライアントからの情報を調整する必要がある場合に実行します。または、中央データリポジトリを使用して動的データを照合する必要がある場合や、特定のセキュリティ要件が必要な場合も同様です。このリストは完全なものではなく、簡単な例にすぎません。
つまり、フロントエンド(クライアント)は情報を外部に提示します。通常、これらはHTMLまたはその他のGUIを介した人間です。
バックエンドは、フロントエンドが使用するサービスを集中化する手段を提供します。バックエンドの使用は必須ではなく、システムに複雑さを追加しますが、構築しようとしているシステムに固有の複雑さをよりよく管理できます。
たとえば、 フロントエンドのみでwiki などのサービスを提供することは可能ですが、バックエンドを使用してデータを格納し、フロントエンドに提供することで解決できる多くの制限がありますより自然な方法で。
一般的なWebアプリ/ Webサイトには2つの側面があります。
フロントサイド-ui/layout/colors/fontsなどのコントロール
裏面-データベース内のデータの操作、またはファイル操作を処理します。これが行われると、多くのロジックが実行されます。そうでない場合は、実行されます。Apache/ IIS/etcなどのWebサーバーソフトウェア、およびデータベースサーバーと統合します。 mySQL/PostreSQL/MS SQL Serverなどのソフトウェア。
Excelファイルの作成、レポートの生成、計算の実行、さまざまなサーバーからのデータの取得など、非常に多くのことを実行できるため、裏面ははるかに強力です。
次に、そのデータを準備して表示し、フロントサイドの設定方法を示します。
どちらかでうまくやることは、大変な仕事であり、たくさんの練習、学習、そして自己規律です。
あなたが最高になりたいなら、練習し、決して学習を止めず、そしてあなたがすべての答えを知っていると決して仮定しないでください。
フロントエンドはブラウザで実行されるものであり、PHPなどのバックエンドはサーバーで実行され、データベースにデータを格納し、そのようなことを行います。