Ajax(エイジャックス)は、Webアプリケーション(Webブラウザを基本とするアプリケーション)のための色々な技術の総称です。ここ10年くらいのネットの世界で効くようになった用語です。
特徴の1つが、WebサーバーとデータのやりとりしながらWebページをリアルタイムに更新できることです。代表的なのが
・GoogleMap
・Fxのウェブサイトでリアルタイムに切り替わる為替情報などなど
Ajaxの正式名称って?
Asynchronous JavaScript + XMLを省略したものです。XMLは「XML形式のデータ」を表します。XMLは、HTMLと同じようにタグでデータを構造するテキストデータです。Ajaxで、WebサーバーとのデータのやりとりにXML形式のデータを使用します。
Webサーバーから取得したXMLデータを処理するときに使われるのはjavaScriptで、そのダイナミックHTML機能を利用して、Webページ内の
必要な部分を書き換えます。
Asynchronousとは、非同期という意味ですが、Webブラウザとのやりとりを非同期通信と呼ばれる方法によって行います。どういうことかというと、Webサーバーと通信を行っている間にもWebページ更新などの別の処理を行えるという意味です。
同期通信・非同期通信
ネットワークに通信は、プロトコルというルールに従って行いますWebサーバーとWebブラウザ間では、HTTPというプロトコルが使用されます。Ajaxでは、javaScriptからHTTPを利用した、非同期通信が行えるのが特徴です。
非同期とは逆に同期通信というものがあります。従来の通信方式でWebブラウザからWEbブラウザに何かしらのリクエストを送った場合、相手からの応答があるまで他の処理ができません。Webの掲示板で「送信」ボタンを押して、その結果が表示されるまで一切操作が出来ない場合がそれに当たります。
それに対して、非同期通信では相手からの応答を待つ必要がなく、結果が戻ってくるまでの間に別の処理が行えます。GoogleMapならユーザーが地図をスクロールしている間にWebサーバーから地図データを読み込んだり、FXのウェブサイトなら常時為替の情報が更新されています。
XMLHttpRequestオブジェクト
Ajaxを利用した非同期通信では、XMLHttpRequestオブジェクトというjavaScriptのオブジェクトを使用します。
HTTPプロトコルを使用して、WEbブラウザとWebサーバー間で通信を行うとき、WebブラウザがHTTPリクエストというメッセージをサーバーに送ります。Webブラウザのアドレスに「http:***.com/index.html」と指定すると、Webブラウザは、ホスト名は「***.com」というWebサーバーに「index.html」を取得したいというHTTPリクエストを送ります。Webサーバーでは、その応答として「index.html」を送ります、
クロスドメイン制約
XMLHttpRequestオブジェクトを活用すると、Webサーバー間で通信を行うことができます。ただ、すべてのWebサーバー間で通信を許可するとサーバー上の情報を盗むことを目的とした悪意のあるプログラムが作成される可能性があります。そのため、セキュリティ上の配慮から
HTMLがロードされたサーバー以外とは、XMLHttpRequestオブジェクトを使って通信できないようにしています。このことをクロスドメイン制約といいます。