假設我正在通過POST HTTP請求上傳大文件。HTTP POST prarameters order/REST urls
我們還要說,我有另一個參數(文件除外),用於命名文件正在更新的資源。
該資源不能成爲URL的一部分,您可以使用REST(例如foo.com/bar/123)來完成此操作。假設這是由於技術和政治原因的綜合。
如果資源名稱無效或者IP地址和/或登錄用戶無權更新資源,服務器需要忽略該文件。如果資源參數在POST請求中首先出現,可以輕鬆完成此操作。
看起來,如果這個POST來自一個HTML表單,其中包含大多數(所有?)瀏覽器的資源名稱第一個和文件字段第二個,則此順序將保留在POST請求中。但是,完全依靠這個想法是天真的,不是嗎?
換句話說,HTTP參數的順序是微不足道的,客戶端可以以任意順序自由構建POST。這不正確嗎?
這意味着,至少在理論上,服務器可能會在它拒絕請求之前最終存儲整個大文件。
在我看來,這是一個明顯的例子,RESTful網址具有優勢,因爲您不必查看POST內容就可以對請求執行某些授權/錯誤檢查。
你同意嗎?你有什麼想法和經驗?
更多評論請!在我看來,每個大文件上傳(或任何文件上傳)的人都應該考慮這個問題。
客戶端驗證?來吧。這也不可靠。 我的觀點是,我得出結論,這隻能用REST有效解決。你同意嗎? – 2010-04-18 00:14:28
不是客戶端驗證,而是在使用表單獲取到html頁面之前對用戶進行驗證。比如說,您首先使用授權數據執行一個請求,將其保存在一個cookie中,然後用實際內容做另一個請求。下面的方法也很好。 – Timo 2010-04-18 15:00:20
我明白了。你提出兩個請求。一個獲取資源的cookie,一個發佈資源。是的,這將工作,但是,男孩,什麼是人爲的解決方案!將它與REST的優雅進行比較。 – 2010-04-18 16:52:17