記事を始める前に
この記事ではこれからASPを学ぶことに置いて基本となる知識を教えてます。
記事を始める前の基本知識
Webの世界にはクライアントとサーバーと言うのが存在します。まず、クライアント(Client)とは、”他のサーバーやコンピューターに対して情報を要求したらい利用するソフトウェア”と言えるでしょう。Webアプリケーションの場合、Microsoft Edge, Safari, Opera, Google Chromeのようなインターネットブラウザーなどがあると理解しても良いと思います。
ちなみに、Webアプリケーションの概念がよくわからない方は以下の記事を参考にして頂くと良いと思います。
一方、サーバー(Server)とは、”他のコンピューターからの要求に対して、情報やサービスを提供するコンピューターやソフトウェア”を言います。要すると要求するのはクライアントで提供するのがサーバーとなりますね。周りでよく見れるサーバーとしては、大量のデータを管理するデータベースサーバー、電子メールを受け渡しするためのメールサーバー、ファイルを転送するためのFTPサーバーなど、数えしれないサーバーがあります。その中で私たちが扱うサーバーはWebアプリケーションでクライアントからの要求を受け付け、サービスを提供するWebサーバー(もしくはHTTPサーバー)に対して扱おうと思います。
これ以降、サーバー=Webサーバーと言う感じで理解してください。

クライアント/サーバー間の通信
Webでは、ブラウザーを使うことによってインターネット上のコンテンツを見る事が出来ます。この位置を表すための記法をURL(Unifrom Resource Locator)と言います。このサイトの「https://dripcoke.com/」がURLの一種となってます。
そして、クライアントとサーバーとの間では、URLやコンテンツをHTTP(HyperText Transfer Protocol)と言うプロトコルで通信します。
HTTPとは通りHTMLを転送するためのプロトコルであり、”クライアントからのリクエストに対して、サーバーからのレスポンスする。”という単純なやりとりを規定しています。
ちなみにHTMLの概念に対して習得してから進みたい方は以下の記事を参考にしていただくといいと思います。
その他に、HTTP、リクエスト、レスポンスに対してもっと調べたい方は以下の記事を参考にして頂くといいと思います。
静的ページと動的ページ
このようなWeb上のやり取りにおいて、サーバー側に用意されたコンテンツをそのままクライアントそのまま送るページの事を静的ページと言います。(ex.クライアント側あらindex.htmlを要求してサーバー側からindex.htmlを応答した場合)
しかし、Webページと言うものは静的ページだけではありません。クライアントが特定の値を入力して要求した場合に応じて、応答するデータを自動的に変更するケースもあります。例えば、Google検索エンジンで「Dripcoke」と検索したら「Dripcoke」というサイトの検索結果を表示するサイトを表示します。
このように、サーバーがWebページ内でクライアントの要求に応じて働くページを動的ページと言います。

クライアントサイド技術とサーバーサイド技術
上記の段落までみましたが、Webページには「動的ページ」というものが存在します。その動的ページを動かすためにはサーバーサイド技術とクライアントサイドの技術が必要です。
クライアントサイド技術とサーバーサイド技術は”ユーザーの操作や与えられた値、条件に応じて動的にコンテンツを生み出すため”に存在します。
まず、クライアント側の技術に対して見てみましょう。クライアント側の技術はクライアント側にスクリプトと必要なデータ(イメージや音声など)をダウンロードして仕組みを表示することを言います。例えば、皆様がよく知ってるJavaScriptのようなものがそうです。
それに反して、サーバーサイド技術はプログラムの処理をサーバーサイドで行い、その結果をHTMLのなどの形でクライアントで送信する技術を言います。これから見てみるASP.NETなどがサーバーサイド技術です。
クライアント側の技術における「動的」とは、あくまで用意された情報の見せ方の変化させているにすぎません。コンテンツそのものは変わりません。一方、サーバーサイド技術ではファイルシステムやデータベースをはじめ、サーバー側のストレージも自由に利用できます。つまり 、ASP.NETのようなサーバーサイド技術では、コンテンツ提供者が提供する情報だけではなく、クライアントから入力した情報を見ることもできます。

もし、記事を読みながらJavaScriptの仕組みなどを知りたい方は以下の記事をお勧めします。
ASP.NETのイントロ
- ASP.NETのイントロ-(4)-ASP.NETアプリケーション開発のための環境設定
- ASP.NETのイントロ-(3)-開発/実行するための基本環境
- ASP.NETのイントロ-(2)-.NET Framework
- ASP.NETのイントロ-(1)-Webアプリケーション