10
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ブラウザによるOriginヘッダーの違いまとめ

Posted at

ブラウザによって、あるケースではOriginヘッダーが付与されなかったりして困りました。
あまりそういう人はいないのか、ググってもあまりヒットしなかったので調べた結果を残しておきます。

調査したブラウザ

  • Chrome 79.0.3945.130
  • Firefox 72.0.1
  • Microsoft Edge 44.18362.449.0 (EdgeHTML 18.18362)
  • Internet Explorer11 592.18362.0

調査したパターン

下記の組み合わせでリクエストヘッダーにOriginが設定されるか否かを調査。

  • リクエストメソッドはPOSTとGETに絞った
  • 接続先は同一ドメイン・別ドメインで検証
  • フォーム送信、Fetch API、XMLHttpRequestの3パターンを検証

調査結果

フォーム送信

  • ChromeとFirefoxはPOST時にはOriginが設定された。
  • EdgeとIE11は設定されない
クロスドメイン 同一ドメイン
POST GET POST GET
あり※   なし  あり※  なし

※EdgeとIE11以外

Fetch API

  • Fetch APIに対応していないIE11を除く)すべてのブラウザはすべて同じ挙動だった
    • クロスドメインへのアクセスはGETかPOSTかに関わらず、Originヘッダーが付与される
    • 同一ドメインへのアクセスでもPOSTの場合はOriginヘッダーが付与される
クロスドメイン 同一ドメイン
POST GET POST GET
あり  あり  あり  なし

XMLHttpRequest

  • クロスドメインへのアクセスはGETかPOSTかに関わらず、どのブラウザでもOriginヘッダーが付与される
  • 同一ドメインへのPOSTもGETも基本的にはOriginヘッダーが付与される
  • 但し、IE11はGETの場合は付与されない
クロスドメイン 同一ドメイン
POST GET POST GET
あり   あり  あり   あり※IE11以外

まとめ

The user agent MAY include an Origin header field in any HTTP request.

RFC的には明確にどの場合に付与するか決まってないようです。
Edgeはバグのような記述を見ましたが、IE11の挙動が変わる気がしないので使いにくい属性だと思いました。

10
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?