なぜ html の form は PUT / DELETE をサポートしないのか?

なんで html の from は PUT / DELETE ができないのか、「セキュリティ的理由」とか「歴史的経緯」とか、わかったような分からないような説明はよく聞くけど、実際なんでなのか調べてたら色々教えてもらった話。 ここまでわかったことを blog にまとめました。 / “なぜ html の form は PUT / DELETE をサポートしないのか? - Block Rockin’ Codes” http://jxck.hatenablog.com/entry/why-form-dosent-support-put-delete
サイト制作 プログラミング HTML REST Web
44
Jxck @Jxck_
定期的に「なぜブラウザのフォームは PUT / DELETE をサポートしないのか?」を調べてははっきりとした収穫無く、また途中までの足取りをちゃんと残さず忘れる。どっかにズバッと理由や背景が書かれたリソースってあるのかな?
Kotaro Kokubo @kotarok
@jxck_ 「Web を支える技術」のその辺の話は特に理由というようなものは書いてなかったんでしたっけ。でも積極的に実装しなかっというよりは他にフォーカスしてほっといたらなし崩しにそのままになってしまった、とかな気がしますよね。
Jxck @Jxck_
@kotarok あれ?書いてありましたっけ??英語方面ググってばかりで完全な灯台元暗しでした(汗 帰ったら確認します。 cc @yohei
Kotaro Kokubo @kotarok
@jxck_ @yohei 僕も今人に貸してて手元にないのであやふやです(汗)
atsuya 🍜ˎˊ˗ @atsuya
@jxck_ htmlのフォームとどう上手く関連付けるかで議論がなかなか進まず、誰もやらなかった、て感じっぽいですね。html5も最初はput/deleteを含んでいたのは知らなかったです。 http://t.co/amBWQOhjzW
Jxck @Jxck_
@atsuya どれもなんともあやふやな感じですよね。 html5 でくじけた話より、なんでもともとなかったのか?あたりがちゃんと知りたいんですよね。
lef/HAYASHI, Tatsuya @lef
@Jxck_ 僕の認識は「歴史的経緯」です。未検証。
koichik @koichik
@Jxck_ 「もともと」はputもdeleteもなかったからなぁ。1.1で追加されたけど直後のhtml4には間に合わなくてそのままずるずる…じゃないかと。つまりxhtmlの迷走が犯人
Jxck @Jxck_
@koichik あ、そういう問題だったんですか? じゃあ、その時点ではセキュリティとかそういう話ではなかったんですかね?
Jxck @Jxck_
@lef その経緯の話です。
koichik @koichik
@Jxck_ 中の人じゃないから実際はわからないけど、HTML4が勧告になった頃ってまだブラウザ戦争真っ只中で標準の立場が危うくてHTML4の目玉は<b>とか見てくれはCSS任せのstrictモード… みたいな時代だからねぇ。
koichik @koichik
@Jxck_ ちなみにXHTML (のモジュール化) が成功していればXFormsが普及していたかもしれなくて、それにはputもdeleteもある。
Jxck @Jxck_
@koichik そうだったんですか、なんかセキュリティ的な問題がずっと解決しないとかそんな感じだと思ったんですが、そうでも無いんですかねぇ。そういう雰囲気だった、となるとログみたいなのは残らないか。。
Jxck @Jxck_
XHTML といえば、「Web 標準教科書」か。益子先生。あの本どうしたかなぁ。
koichik @koichik
@Jxck_ 本当にセキュリティの問題が既知だったならWebDavが成立しないはずなので関係ない気ががが。あと最初のリプがわかりにくい書き方だった。1.0以前のHTTPにはもともとputもdeleteもなかった、の意味でした (Jxckには伝わったかもだけど)。
Naoya Ito @naoya_ito
良スレ / “Twitter / Jxck_: 定期的に「なぜブラウザのフォームは PUT / DELETE ...” http://t.co/5Hyxjv3Rci
Jxck @Jxck_
@koichik うーん、ブラウザの Form 使う前提だと WebDav とは違うケースも想定できそうなんで、一概に Form だめなら WebDav もだめとはならないのではないですかね?(その辺良くわかってない) あと、最初のリプの意味は理解してました。
Jxck @Jxck_
@kotarok @yohei 見返しましたがそれらしい解説はなく、「HTML で制限されてるから」だけだったようです。
Jxck @Jxck_
HTML4.1 の仕様、 Form の action が get/post に制限されてるけど、なぜその制限なのかはかいてないんだよなぁ。
Kotaro Kokubo @kotarok
@jxck_ @yohei おっと、記憶違いでしたか。わざわざすいません。
Jxck @Jxck_
@kotarok @yohei いえいえ、ありがとうございます。あと和書であるとすれば益子先生の本ですかねぇ。今と元にないけどあとで見てみます。
Jxck @Jxck_
実際ブラウザの Form に PUT や DELETE が実装されたら、どうなるだろうか。
ユースケ / Yusuke @yusuke
@Jxck_ あとProxyが対応してなくて死亡とか結構ありそう・・。PROPFIND対応してなくてsvnアクセスできない会社とか結構ありますよね・・・
Jxck @Jxck_
@yusuke 全部(画面遷移も!) POST ですね。わかります。
残りを読む(150)

コメント

🦅あえとす⛩️ @aetos382 2014年3月24日
X-HTTP-Method とか X-HTTP-Method-Override なんていうヘッダーを使う場合もあるようですね。
加賀谷昌樹 @sarabandejp 2014年3月24日
extension spefication として審議中。https://www.w3.org/html/wg/tracker/issues/195 導入議論の要約は http://programmers.stackexchange.com/a/211790/88023 まとめた人の結論によれば包括的な仕様を書く時間がなかった。
Tsuyoshi CHO @tsuyoshi_cho 2014年3月24日
色々条件が時代で変った気はする...が、なぜかっていうと難しいね。
加賀谷昌樹 @sarabandejp 2014年3月29日
form extension のほかの事例を探したら、 W3C HTML JSON form submission を見つけた。 著者は HTML5 Editor の Robin Berjon 氏。 http://darobin.github.io/formic/specs/json/
ログインして広告を非表示にする
ログインして広告を非表示にする