SSブログ

各種リダイレクトに関するブラウザの挙動の違い [その他]

サーバー側のリダイレクト要請には,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
コメント(0)  トラックバック(0) 

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。