開発覚書はてな版

個人的な開発関連の備忘録

【HTTP】ブラウザ毎のOriginヘッダー付与の違い(2018年6月現在)

概要

HTTPリクエストでOriginヘッダーが設定されるケースが異なるためまとめてみました。

Originヘッダーについて

  • <scheme>://<hostname>[:<port>]のフォーマットで設定される。(例:Origin: https://blog.hatena.jp )
  • プログラムによる書き換えはできない。ブラウザが設定した値が使用される。
  • サーバー側のCORSチェックに使用される。

Originヘッダーの設定条件

以下の場合にOriginヘッダーは設定される。

ブラウザ毎の挙動の違い

2018年6月現在、POSTリクエストに対するOrigin設定の有無がブラウザ毎によって分かれている。

同一OriginのPOST時にOriginが設定されるブラウザ
同一OriginのPOST時にOriginが設定されないブラウザ
各ブラウザの対応について

POST時のOrigin設定については仕様であり、設定されていないブラウザについては不具合として報告されている。

Firefox 59で対応したと記載があるけど60でも設定されていないので直ってないような・・・

おわりに

同一Originでブラウザ毎にヘッダーを送る送らないがあるため、サーバー側は注意しないといけないですね・・・

参考URL

developer.mozilla.org