背景:假設我有一個顯示Foos集合信息的網站。網址是:如果使用錯誤的方法並且我不知道資源是否存在,我應該使用404還是405進行響應?
https://example.com/foo/{foo-id}
我只對GET請求做出響應 - 您不能POST或PUT或DELETE Foo。檢查某個ID是否對應真實的Foo是一項昂貴的操作,我想避免。
問題:如何響應POST請求到/foo/12345
?理想的做法是檢查這樣的Foo是否存在。如果是這樣,發送405(方法不允許)。如果沒有,發送404(未找到)。但是檢查Foo是否存在價格昂貴,而且我不想浪費那些甚至無法使用正確方法的白癡。
那麼,我有兩種選擇:
- 始終以404響應,即使有可能實際上是東西在那裏。
- 始終以405響應,即使可能沒有任何內容,並且如果使用正確的方法重新發送請求,用戶代理將迎接404。
哪個選項最符合HTTP標準?他們中的任何一個人是否都支持這個標準?