なぜ 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
46
前へ 1 ・・ 6 7
YAMAMOTO Yohei @yohei

@Jxck_ @myakura 正にその通りで、JSなしの単体HTMLフォームでPUT/DELETEできてどれくらい嬉しいんだ、という議論だったのでは。で、僕の感覚では、action先のURL固定フォームでPUT/DELETEは使い道がなさそうと

2014-03-27 09:01:33
Jxck @Jxck_

@yohei @myakura 4.0 でのその議論って残ってないですかねぇ。。

2014-03-27 14:13:36
Jxck @Jxck_

“Form とはなんだったのか”

2014-03-27 15:03:11
YAMAMOTO Yohei @yohei

@Jxck_ 議論と書いたけど、議論にすらなってないのかも。みんなの常識だったから。Google MapsとAjaxの衝撃って正に常識が変わった出来事だったので。Ajax以前はセキュリティのためにJavaScriptはオフにするのがリテラシが高いというような認識もあったりした。

2014-03-27 16:04:11
Jxck @Jxck_

@yohei うーん確かに Ajax は J.J.Garrett が名づけたのが 2005。その裏はちょうど XForms の策定中で、あれはスクリプトとかなくても動くことを目標にしているっぽいし、 HTML のシンプルなフォームにそれを載せる発想はなかったのかもですねぇ。

2014-03-27 16:16:21
Jxck @Jxck_

HTML4.0 時代の ML ってどこ見ればいいの?(迷子

2014-03-27 16:18:56
Jxck @Jxck_

@snakajima はじめまして Jxck と申します。突然失礼します。今「なぜ html の form は PUT / DELETE をサポートしないのか?」という点を色々議論しています。途中経過はここにまとめています。http://t.co/SI8qsQLYAH (cont

2014-03-27 16:32:30
Jxck @Jxck_

@snakajima HTTP1.1 を参照する HTML4.0 の仕様にそもそも入らなかったのは、当時まだ HTML から PUT/DELETE をするユースケースが見いだせていなかったのではないかと想像していますが、実際のところよくわからず。。(cont

2014-03-27 16:32:59
Jxck @Jxck_

@snakajima 当時の仕様策定の雰囲気はどういったものだったのか、当時開発などをされていた中島さんなら、何かご存知のことがあるのではと思いお伺いしました。当時の議論などについて何かご存知なことがありましたら、お伺いできませんでしょうか?

2014-03-27 16:34:26
Jxck @Jxck_

やっぱり、当時の状況を時系列で考えると、 HTML の Form で PUT とか DELETE を入れるには抵抗があったのかもなぁ。しかしあの時代に Hixie が一蹴するのはちょっとどうなのかなと言う気はするけど。

2014-03-27 16:42:01
Jxck @Jxck_

なんか XForm 調べてても XHTML な世界は、良かっただろう気もするし、そうでもなかっただろう気もするし、なんとも言えない感じある。今は、その仕様に入ったかもしれない機能を全て JS で実装しているという点では、本質的には変わらないのかな。

2014-03-27 16:47:57
Satoshi Nakajima @NounsDAO 🇺🇦 @snakajima

@Jxck_ 実際のところは、そんなに深い意味はありません。「GETとPOSTさえあれば何でも出来る」というエンジニア目線と「GETで消去をするなんて邪道だ」というサイエンティスト目線が食い違った結果の産物です。

2014-03-28 01:17:21
Satoshi Nakajima @NounsDAO 🇺🇦 @snakajima

@Jxck_ HTTPのレイヤーでPUTやDELETEを真剣にやり始めると、「MOVEも必要だ」などと、仕様が肥大化してしまいます。HTTPのレイヤーではGETとPOSTだけにとどめて、後はURLパラメータなどでアプリケーションごとに指定すれば良いと思います。

2014-03-28 01:22:28
Jxck @Jxck_

@snakajima ありがとうございます!深い意味が無かったのであれば、HTTP/1.1 通りに GET, POST, PUT, DELETE 全部入れるというのが、エンジニア・サイエンティスト両方の目線から見て一番素直な気がするのですが、その辺はどうだったのでしょうか?

2014-03-28 01:22:35
Jxck @Jxck_

@snakajima すいません、被りました。 MOVE は WebDAV ですよね? HTML4 は HTTP1.1 を参照しているというのが、一番ひっかかるところなのです。HTTP1.1 から HTML4 まで数ヶ月しかなかったので、時間的な問題で見送ったとも想像できますが。

2014-03-28 01:24:49
Satoshi Nakajima @NounsDAO 🇺🇦 @snakajima

@Jxck_ 時間的な問題というよりも、「HTTPにPUTとDELETEは不要(GETとPOSTで十分)」と考える人が多いからだと思います。「あった方が良い」ぐらいのものを全て足したら仕様はどんどん肥大化していきますから。

2014-03-28 02:22:07
Jxck @Jxck_

@snakajima なるほど。やはりそういう雰囲気だったんですね。ありがとうございました!

2014-03-28 02:23:07
Jxck @Jxck_

http://t.co/T7ZzEOZiVp この issue のまとめは http://t.co/ejznliLHQT ここで終わっていることまで分かった。

2014-03-29 08:25:50
Jxck @Jxck_

この cameron さんが issue-195 をまとめた結果がこれ http://t.co/rRcKLrEE0V

2014-03-29 08:28:22
Jxck @Jxck_

そして cameron さんが書いたドラフトがこれか。 http://t.co/tpVPdChIsj

2014-03-29 08:28:43
Jxck @Jxck_

input タグに payload 属性を増やしていて、 HTTP Header とかを form から JS 無しでいじれるようにしている。結構アグレッシブだな。

2014-03-29 08:29:28
Jxck @Jxck_

ここまで拡張すると認証も変わるのか。なるほど。。

2014-03-29 08:30:09
Jxck @Jxck_

問題は、このドラフト以降の議論がどこでやられてるのかわからないんだよなぁ。。

2014-03-29 08:30:32
Jxck @Jxck_

思い切って cameron さんにメールしてみた。

2014-03-29 08:35:26
Jxck @Jxck_

ここまでわかったことを blog にまとめました。 / “なぜ html の form は PUT / DELETE をサポートしないのか? - Block Rockin’ Codes” http://t.co/62rHUsKWpe

2014-03-29 09:06:31
前へ 1 ・・ 6 7