XMLHttpRequest 【XHR】
概要
XMLHttpRequest(XHR)とは、Webブラウザなどに実装されているJavaScriptのAPIおよびオブジェクトの一つで、スクリプトからHTTPを利用してWebサーバにアクセスする機能を提供するもの。Webページ上で実行されているJavaScriptプログラムからWebサーバへ新たにHTTPリクエストを送信することができ、サーバにデータを通知したり、サーバから返送されたHTTPレスポンスをページ上に反映することができる。
スクリプトの実行とHTTP通信を同期させる場合はサーバから応答が返るまで一時停止するが、非同期の通信モードを指定することもでき、その場合は応答が完了すると指定された関数が実行される。受信データはXML形式として展開するか、単純なテキスト形式(プレーンテキスト)として処理することができる。
セキュリティ上のリスクを軽減するため、原則としてWebページの送信元のサーバとしか通信できない「同一生成元ポリシー」(SOP:Same-Origin Policy)が適用されるが、サーバ側の設定次第では外部のWebサーバと「クロスドメイン」通信が許可される場合もある。
以前は、Webサーバへデータを送信したり問い合わせを行うにはページを読み込み直すか別のページへ遷移しなければならなかったが、同じページを表示したまま何度もHTTP通信を行うことができるようになり、Webページを一つのアプリケーションソフトのように構成することができるようになった。このような仕組みを「Ajax」(Asynchronous JavaScript + XML)という。
もともと米マイクロソフト(Microsoft)社のInternet Explorerの独自拡張として提供されたものだが、他の主要なブラウザにも実装が広まり、W3CおよびWHATWGにより標準化されたため、現在ではWebブラウザにおける標準APIの一つとなっている。
(2022.3.22更新)