むじんブログ ”3歩進んで2歩下がる”

37歳未経験からのエンジニア転職を目指す営業部長

学習のアウトプット(オリジン間のリソース共有)

【スキーム】

http://localhost:3000

スキームとは、上記の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でインストールして、許可するサイトを指定したり、全てのサイトを許可したりする)