📑

CORSについて(取っ掛かり部分のみ)

2024/06/18に公開

はじめに

業務をしている中でCORSエラーにハマり、よく知らなかったため
軽くどんなものか調査した。

そもそもCORSとは?

CORS(Cross-Origin Resource Sharing)とはクロスオリジンリソース共有と言い、
あるオリジンで動作しているWebAppに異なるオリジンにある選択されたリソースへの
アクセス権を与えるよう、ブラウザに指示する仕組み。

なるほど...オリジンって何?

URLで使われる、スキーム(httpやhttpsなど)、ホスト(api.example.comなど)、
ポート番号の組み合わせで定義されるもの。
なので例えば、http://example.com:8080みたいなのがオリジンと呼ばれる。

なぜCORSが必要なのか

セキュリティ上の理由から、ブラウザーではスクリプト上によって開始されるオリジン間の
HTTPリクエストを制限している。このセキュリティ上のポリシーを同一生成元ポリシーといい、
これにより、同じオリジン間でしかHTTPリクエストのやり取りができないため、CORSが必要となる。
ちなみに、XMLHttpRequestFetch APIはこの同一生成元ポリシーに従っている。

おわりに

CORSの取っ掛かり部分だけについて書いた。
調べているうちにWebサイトのIP制限と違いがあるのか疑問に思ったので、調べてみようと思う。

参考

https://developer.mozilla.org/ja/docs/Web/HTTP/CORS
https://www.oreilly.co.jp/books/9784873116860/

Discussion