概要
HTTPリクエストでOrigin
ヘッダーが設定されるケースが異なるためまとめてみました。
Originヘッダーについて
<scheme>://<hostname>[:<port>]
のフォーマットで設定される。(例:Origin: https://blog.hatena.jp
)- プログラムによる書き換えはできない。ブラウザが設定した値が使用される。
- サーバー側のCORSチェックに使用される。
Originヘッダーの設定条件
以下の場合にOrigin
ヘッダーは設定される。
ブラウザ毎の挙動の違い
2018年6月現在、POSTリクエストに対するOrigin
設定の有無がブラウザ毎によって分かれている。
同一OriginのPOST時にOriginが設定されるブラウザ
同一OriginのPOST時にOriginが設定されないブラウザ
- Firefox
- Edge
各ブラウザの対応について
POST時のOrigin
設定については仕様であり、設定されていないブラウザについては不具合として報告されている。
- Firefox - https://bugzilla.mozilla.org/show_bug.cgi?id=446344
- Edge - https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/10482384/
Firefox 59で対応したと記載があるけど60でも設定されていないので直ってないような・・・
おわりに
同一Originでブラウザ毎にヘッダーを送る送らないがあるため、サーバー側は注意しないといけないですね・・・