クロスドメイン
複数のドメインからデータを持ってくるよ
ホームページの話で出てくる用語だよ
Ajax(JavaScript)の話題で出てくるよ
簡単に書くよ
クロスドメイン(英:cross domain)とは
ホームページを表示したときに、複数の場所(ドメイン)からデータを持ってくるようになっている状態のこと
です。
詳しく書くよ
順番に見ていきましょう。
IPアドレスは「コンピュータさん向けのネットワーク上の住所」です。
インターネットっぽい通信において、送信先を特定するときとかに使う情報です。
「198.51.100.2」のような形式になっています。
ドメイン名は「IPアドレスに付けた人間様向けの名前」です。
インターネットやメールなどで使われる住所です。
「i-3-i.info」のような形式になっています。
URL(ホームページの住所に相当する情報)においては「http://」や「https://」の後ろの部分がドメイン名です。
「https://i-3-i.info/index.html」であれば「i-3-i.info」の部分ですね。
メールアドレスにおいては「@」の後ろの部分がドメイン名です。
「hoge@example.com」であれば「example.com」の部分ですね。
あなたがホームページを見るときには、まず、ホームページを見るときに使うソフト(Webブラウザ)からホームページのファイルが置いてあるコンピュータ(Webサーバ)に対して「このページをおくれ」と お願いが出されます。
そのお願いに対して、WebサーバさんからWebブラウザさんに「ほれ、そのページだよ」と お返事がきます。
あとはWebブラウザさんが、お返事を画面上に表示します。
これがホームページを見るときの流れです。
ドメイン名は「このページをおくれ」と お願いする先を指定するときに使う情報です。
例えば
https://wa3.i-3-i.info/index.html
と指定して、ホームページを表示したとしましょう。
このとき、みなさんの見えないところではドメイン名「wa3.i-3-i.info」に該当するコンピュータに対して「『index.html』という名前のファイルをおくれ」と、Webブラウザさんからお願いが出されています。
それに対して、ドメイン名「wa3.i-3-i.info」に該当するコンピュータから「ほれ、そのページだよ」と「index.html」が送られてきます。
あとはWebブラウザさんが、お返事を画面上に表示します。
これで、あなたは「https://wa3.i-3-i.info/index.html」を見られます。
さて、ここで ちょっと考えてみてください。
「https://wa3.i-3-i.info/index.html」を表示するときに必要なファイルは「index.html」だけでは ありません。
例えば、画像が必要です。
実際に、ページ「https://wa3.i-3-i.info/index.html」では画像「https://wa3.i-3-i.info/img/wa3piyo2.png」を使っています。
ページを完成させるには画像も必要です。
そこで「index.html」を受け取ったWebブラウザさんは、ドメイン名「wa3.i-3-i.info」に該当するコンピュータに対して、再度、お願いを出します。
今度は「『img』にある『wa3piyo2.png』をくれ」とお願いするのです。
それに対して、ドメイン名「wa3.i-3-i.info」に該当するコンピュータから「ほれ、そのファイルだよ」と「wa3piyo2.png」が送られてきます。
この流れを必要なファイル数分、繰り返すことで、1つのページが完成します。
結構、面倒くさいことをやっていますね。
今回の流れでは、すべてのファイルをドメイン名「wa3.i-3-i.info」に該当するコンピュータから持ってきました。
実は、これを複数のコンピュータに分けられます。
例えば、画像「wa3piyo2.png」を「wa3.i-3-i.info」ではなく「example.com」に置いたとしましょう。
そして
https://wa3.i-3-i.info/img/wa3piyo2.png
だった指定を
https://example.com/img/wa3piyo2.png
に変えました。
そうすると「https://wa3.i-3-i.info/index.html」を表示する流れは
1.「wa3.i-3-i.info」に該当するコンピュータから「index.html」をもらう
2.「example.com」に該当するコンピュータから「wa3piyo2.png」をもらう
に なります。
おっと、やり取りするコンピュータが2つに増えましたね。
ドメイン名「wa3.i-3-i.info」に該当するコンピュータとドメイン名「example.com」に該当するコンピュータの2つが、Webブラウザさんの求めに応じて、ファイルを送ってくれました。
このような
複数の場所(ドメイン)からデータを持ってくる状態
が「クロスドメイン」です。
なお、話を単純化するためにページ「index.html」と画像「wa3piyo2.png」を例に挙げましたが、この例のような構造で「クロスドメインがど~たら」な話になることは、まず、ありません。
「クロスドメインがど~たら、こ~たら」という話になるのは、JavaScriptのAjaxに関する話が多いはずです。
Ajaxという仕組みを使うと「ほれ、そのファイルだよ」の結果を受け取って、さらに「このページをおくれ」のお願いを出せます。
他にも、いろいろ、あーだこーだができます。
よく分からない人は(間違った説明ですが)Ajaxを使うと複数の「このページをおくれ」が同時に出せると思ってください。
ただし、このときにお願いできる先は、1つのドメインだけです。
「wa3.i-3-i.info」に対して複数のお願いを同時に出すことはできますが「wa3.i-3-i.info」と「example.com」に同時にお願いを出すことはできません。
そのような技術的制約が、かかっています。
ですが「wa3.i-3-i.info」と「example.com」に同時にお願いを出したいときもあるはずです。
そんなときに「クロスドメインの問題でうんちゃら」とか「クロスドメインの制約を回避するためにかんちゃら」とか、話されたりするのです。
ちょっと小難しい表現を使うと
主となるファイル(Ajaxが記述されている or 読み込まれるHTMLファイル)の取得元ドメイン以外に対してHTTPリクエストを投げられないよう制限されている状態
を指して
クロスドメイン制約
と言ったりします。
「クロスドメイン」という用語を見かけるのは、そんな話題が多いと思います。
一言でまとめるよ
まぁ「クロスドメイン」って単語が出てきたら「複数の場所(ドメイン)からデータを持ってくる状態なんだな~」と お考えください。
おまけ
■訳してみるよ
「cross(クロス)」の意味は「十字」とか「交差」とか「横切る」とか「横断する」とかです。
「domain(ドメイン)」の意味は「領域」とか「区域」とか「領土」とかです。
何となく くっつけると
交差した領域
となります。
■検索してみる?






