学習のアウトプット(オリジン間のリソース共有)
【スキーム】
スキームとは、上記のhttp://の部分を指す。
httpsの部分はプロトコルで、一般にhttpプロトコルのことをスキームと呼ぶ。
【ホスト】
http://localhost:3000ではlocalhostの部分
https://www.google.comではwwwの部分を指し、接続する機器のことを表している。
【ポート】
http://localhost:3000では3000の部分を指す。
同じホストでも、ポートを変えれば別のアプリケーションを起動できる。
(接続する側も、同じサーバーでも別のアプリケーションにアクセスできる)
【Origin】
スキーム(プロトコル)・ホスト(ドメイン)・ポートをまとめたものの総称。
URLとの違いは、その後にパスがあるかどうか。
Origin:http://localhost:3000
URL:http://localhost:3000/hoge/fuga
【同一Origin】
パスより前の部分が一致しているものは同一Origin
そうでないものは異なるアプリケーションということになる。
【同一Originポリシー】
異なるOriginのアプリケーションに接続する場合は、セキュリティ面を考慮した制限がかかるというもの。
基本的にはAPIを用いる際に加味することが多い。
例えば自社のアプリケーションに他社の外部APIを利用する場合、
Originが異なるので制限がかかり利用できなくなる。
(制限がないと、意図しないアクセスなどによって損害を被る可能性がある→サーバーアクセスが急増して高額請求となった例など)
【CORS】
Cross Origin Resource Sharingの略でコルスと読む。
異なるオリジンのアプリケーションへアクセスを許可(制限解除)する仕組みのこと。
Ruby on Railsでは、rack-corsというGemを用いて制限解除を行うことができる。
(アクセスされる側のOriginでインストールして、許可するサイトを指定したり、全てのサイトを許可したりする)