各種リダイレクトに関するブラウザの挙動の違い [その他]
サーバー側のリダイレクト要請には,302 Found,303 See Other,307 Temporary Redirectの3種があります。
302 Foundは元々302 Moved Temporaryで,メソッドを変えてはいけないはずだったのに,UAが守らないから303と307が出来たそうです (ref: [Studying HTTP] HTTP Status Code)。 というわけで,各種ブラウザで挙動を確認してみました。 ベースとなる環境は,Windows Vista 32bitになります。 また,名称はWindowsのタスクバーへの表示を使っています (Safari, Lynx除く)。
- Internet Explorer 8.0.6001.18813CO
- User-Agent
- Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 1.1.4322; InfoPath.2; .NET CLR 3.5.21022; .NET CLR 3.5.30729; .NET CLR 3.0.30729; OfficeLiveConnector.1.4; OfficeLivePatch.1.3)
- 結果
- 302 Found
- GET/POSTに対して,どちらもGETでリダイレクトした。
- 303 See Other
- GET/POSTに対して,どちらもGETでリダイレクトした。
- 307 Temporary Redirect
- GETに対してはGETで,POSTに対してはPOSTでリダイレクトした。その間,ユーザーへの問い合わせは存在しなかった。POSTの元のフォーム変数は保持された。
- Internet Explorer 8.0.6001.18813CO (互換モード)
- User-Agent
- Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 1.1.4322; InfoPath.2; .NET CLR 3.5.21022; .NET CLR 3.5.30729; .NET CLR 3.0.30729; OfficeLiveConnector.1.4; OfficeLivePatch.1.3)
- 結果
- 302 Found
- GET/POSTに対して,どちらもGETでリダイレクトした。
- 303 See Other
- GET/POSTに対して,どちらもGETでリダイレクトした。
- 307 Temporary Redirect
- GETに対してはGETで,POSTに対してはPOSTでリダイレクトした。その間,ユーザーへの問い合わせは存在しなかった。POSTの元のフォーム変数は保持された。
- Mozilla Firefox 3.5.3
- User-Agent
- Mozilla/5.0 (Windows; U; Windows NT 6.0; ja; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)
- 結果
- 302 Found
- GET/POSTに対して,どちらもGETでリダイレクトした。
- 303 See Other
- GET/POSTに対して,どちらもGETでリダイレクトした。
- 307 Temporary Redirect
- GETに対してはGETで,POSTに対してはPOSTでリダイレクトした。POST時のフォーム変数を再送信するかどうか問い合わせがあった。
- Google Chrome 3.0.195.21
- User-Agent
- Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.195.21 Safari/532.0
- 結果
- 302 Found
- GET/POSTに対して,どちらもGETでリダイレクトした。
- 303 See Other
- GET/POSTに対して,どちらもGETでリダイレクトした。
- 307 Temporary Redirect
- GETに対してはGETで,POSTに対してはPOSTでリダイレクトした。POST時のフォーム変数を再送信するかどうか問い合わせがあった。
- Opera Internet Browser 10.00 Build 1750
- User-Agent
- Opera/9.80 (Windows NT 6.0; U; ja) Presto/2.2.15 Version/10.00
- 結果
- 302 Found
- GET/POSTに対して,どちらもGETでリダイレクトした。
- 303 See Other
- GET/POSTに対して,どちらもGETでリダイレクトした。
- 307 Temporary Redirect
- GETに対してはGETで,POSTに対しては再送信するかの問い合わせがあり,再送信する場合はPOSTで,しない場合はGETでリダイレクトし,キャンセルした場合は元のページのままであった。
- Safari 4.0.3
- User-Agent
- Mozilla/5.0 (Windows; U; Windows NT 6.0; ja-JP) AppleWebKit/531.9 (KHTML, like Gecko) Version/4.0.3 Safari/531.9.1
- 結果
- 302 Found
- GET/POSTに対して,どちらもGETでリダイレクトした。
- 303 See Other
- GET/POSTに対して,どちらもGETでリダイレクトした。
- 307 Temporary Redirect
- GET/POSTに対して,どちらもGETでリダイレクトした。
- Lynx 2.8.6 日本語版
- User-Agent
- Lynx/2.8.6rel.4TH libwww-FM/2.14FM SSL-MM/1.4.1 GNUTLS/1.7.8
- 結果
- 302 Found
- GET/POSTに対して,どちらもGETでリダイレクトした。
- 303 See Other
- GET/POSTに対して,どちらもGETでリダイレクトした。
- 307 Temporary Redirect
- GET/POSTに対して,どちらもGETでリダイレクトした。
IE8の307の挙動は,localhostでやっているからかもしれません。 それはともかく,Firefox, Chrome, Operaの307に対する挙動はよいでしょう。IEもPOSTで転送するのでまぁ許せます。 ただ,Safariはどうよ,と思いますが……。
タグ:Internet
2009-09-16 14:19
コメント(0)
トラックバック(0)
コメント 0