[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
1999/08/31 04:46 from msyk
Title: [teenbbs:0408] Re:405) 掲示板 notebooksp.cgi に書きこめない件 - 2

No.   : 408
Sender: msyk
URL   : 
Title : Re:405)掲示板notebooksp.cgiに書きこめない件 - 2

>POSTメソッドに対し応答302が得られたとき、InternetExplorerは
>・GETメソッドでリダイレクト先にリクエストを出す
>・最初のリクエストには付いていたRequestEntityBodyは送信しない
>わけです。1番目はRFCに「間違い」として書かれていることですが、
>2番目は正しいのか正しくないのかはっきりしませんね。ちゃんとRequestEntityBodyも
>送るというのが自然な解釈だと思うのですが。

IE が 302 に対して GET メソッドでリクエスト出すのは RFC では確かに
間違いでしょうが, それはまた別の問題として, GET メソッドでリクエスト
出すなら Request-Entity-Body を送信しないのは正しいんじゃないでしょうか?

そして POST メソッドでリクエストを発行して 302 を受け取った場合に
httpget が自動的に POST メソッドでリダイレクトするのは多分間違いでは
ないでしょうか.

"10.3 Redirection 3xx" にも 2 度目のリクエストが GET, HEAD メソッド
以外の場合, ユーザとの対話なしにリダイレクトしてはいけないとなって
いますね.
ついでに書くと, ここにはユーザ・エージェントは 5 回以上自動的に
リダイレクトするべきではないとも記述されているようです.
以前 httpget の GET メソッドのリクエストで延々リダイレクトを繰り返し,
ESC でキャンセルして止めたことがありました.

>notebooksp.cgi のケースの場合、302でなく303を使うべきだと思うのです。本当は。

"303 See Other" ですか.  確かにその方が良さそうですね.

notebooksp.cgi は POST メソッドでのリクエストに対して, その結果として
できた new resource へのリダイレクトを要求してくるわけですが,
書き込む場合と読み出す場合で同一 URL に対して GET, POST を使用する
ということがうまくいかない原因じゃないでしょうか?

そこで, ある Request-URI へのポスト・メソッド発行に対するレスポンス
として 30[23] を受け取った場合, Response-Entity-Header の Location
フィールドに指定されている new URI が元の Request-URI と同一なら
POST メソッドを GETメソッドに変更してリダイレクトする, というので
どうでしょうか?

[レスを書く]