爲什麼HTML <form>
標籤只提供GET和POST兩種方法? HTTP規範還有其他動詞,如PUT,DELETE等。爲什麼HTML表格標籤只提供2種方法
回答
沒有其他方法預期包含以HTML表單旨在提供的方式組織的數據。
例如,DELETE可能會刪除操作屬性指向的任何資源。在這樣的請求中包含表單數據將毫無意義。
因此,可以有一個帶有按鈕的空白表格標籤刪除資源...... – 2012-03-31 20:51:50
PUT的規範說明它可以創建和更新資源。那麼,爲什麼不支持......? – 2012-03-31 20:52:56
表單旨在收集用戶的輸入。 「我想刪除表單指向的URI」並不會在輸入方式上收集太多(並且不是很多人想要的東西)。 PUT將創建或覆蓋與上傳的任何URI。我想不出一個用於上傳x-form-urlencoded文檔的用例,以便它們可供下載。 – Quentin 2012-03-31 20:55:30
因爲回到當天,沒有流行的瀏覽器實現超越POST和GET的任何東西。
現在看來,讓瀏覽器製造商聚集在一起來標準化DELETE,PUT,PATCH等如何與表單一起工作似乎太麻煩了。即使我們能夠讓瀏覽器廠商達成一致,至少在十年前,足夠的用戶升級到足夠新的瀏覽器才能成爲主流。
請注意,有一些方法可以在逐個應用程序的基礎上解決此問題。 Ruby on Rails爲其form_tag
helper提供了:method
選項,允許通過簡單地使用帶有特殊參數的POST提交更多方法。
HTML始終只允許GET和POST作爲窗體的方法。其原因可能是因爲這兩個PUT和DELETE意在影響由URI標識的,而不是指的是剛剛處理請求的資源的資源:
的POST的根本區別和PUT請求是 體現在Request-URI的不同含義中。 POST請求中的URI標識將處理封閉的 實體的資源。該資源可能是數據接受過程,某個其他協議的網關或接受註釋的單獨實體。 相比之下,PUT請求中的URI使用請求標識包含 的實體 - 用戶代理知道URI的目標是什麼,並且服務器不得嘗試將請求應用於某個其他資源。
[...]
原始服務器刪除由Request-URI標識的資源 的DELETE方法請求。該方法可能會被原始服務器上的人工干預(或其他方式)覆蓋。
這也需要Web服務器本身正確處理請求,處理其他方面,如身份驗證和授權。
- 1. 爲什麼不提供一種方法來獲取IP地址
- 2. 爲什麼github提供兩種下載方法?
- 3. 哪種方法簽名好,爲什麼?
- 4. 爲什麼java.time.LocalDateTime不提供toDate()方法?
- 5. 爲什麼jQuery不提供.firstChild方法?
- 6. 將表格標籤轉換爲標準css最簡單的方法是什麼?
- 7. 角色提供者中這兩種方法有什麼區別?
- 8. 爲什麼Django只提供包含空格的文件?
- 9. 將標籤插入表格的最有效方法是什麼
- 10. 什麼名字2種方法用相同的簽名
- 11. 爲什麼Java提供了兩種從隊列中移除元素的方法?
- 12. 爲什麼Java集合不提供方便的映射方法?
- 13. 在DMZ中只提供幾種服務方法
- 14. 如何翻譯api文檔。只提供一種方法
- 15. 爲什麼Google留下html標籤?
- 16. 爲什麼HTML標籤不承認
- 17. 提供兩種語言的表格
- 18. Dagger 2錯誤:android.content.Context無法提供@提供註釋的方法
- 19. 爲什麼2種AppFabric?
- 20. 只提供HTML到IE6
- 21. 爲什麼帕格或其他模板不遵循HTML標籤
- 22. 我應該在每種方法上提供try/catch,還是隻提供主要方法?
- 23. 自定義標籤提供程序:無法重寫Init()方法
- 24. 爲什麼方法表只包含基類的虛方法?
- 25. 爲什麼這兩種方法的簽名不同?
- 26. 爲什麼Controls集合不提供所有IEnumerable方法?
- 27. 什麼是爲應用程序提供幫助的好方法?
- 28. 爲什麼ArrayBuilder基類不提供方法接口?
- 29. 爲什麼事件不提供3個訪問器方法?
- 30. 爲什麼Chrome爲每個表格行添加tbody標籤?
也許你應該問那個寫html規範的人 – 2012-03-31 20:45:27
實際上其他方法的支持已經在HTML5中正式刪除了:http://www.w3.org/TR/2010/WD-html5-diff-20101019 /#changes-2010-06-24「不再支持使用PUT和DELETE作爲表單元素的HTTP方法。」 – ThiefMaster 2012-03-31 20:46:50
@ThiefMaster - 支持僅在早期版本的HTML 5草案中添加。它從來沒有標準。 – Quentin 2012-03-31 20:48:38