2015-11-04 40 views
0

我想創建一個有效的Web服務,但我有一些問題頭允許,和他在不同情況下的Cors版本。HTTP允許在不同情況下的標頭

假設GET /資源/ 42是有效的,並有頭允許=在下列情況下, 'GET,PUT'

那我該怎麼辦:

1)如果沒有找到資源(401)?

2)如果資源需要授權(401)?

3)如果資源不屬於用戶(403)?

4)如果請求由於缺少API版本頭而被拒絕(400)?現在

,我有完全一樣的問題,如果我取代由OPTIONS

也許我缺少對HTTP知識「GET」,但我找不到充分和精確的文檔。無論如何,謝謝你的幫助。

回答

0

這是開始執行用於在響應代碼和方法類型的文檔的好地方,它是RFC規格:https://tools.ietf.org/html/rfc7231

(全HTTP 1.1規範由RFC 7230-7237覆蓋)

1 )未找到資源 - 通常最好以404返回,但如果您知道它故意消失,則可以返回410。

2)資源需要身份驗證 - 通常403,(但授權是一個更大的主題)

3)資源不被用戶所擁有的 - 資源的所有權不屬於規範 - 您的應用程序可能要以服務由其他人擁有的資源。迴應只是描述了狀態。如果您允許資源被投放,您可以發送常規的基於200的回覆。如果在識別所有權之後明確地僅允許資源,並且您發現客戶端沒有識別爲所有者,則可以發送403響應,或者如果您還想隱藏資源甚至存在的知識,則可以發送404,它更依賴於您的特定需求。

4)請求被拒絕,因爲缺少API版本頭 - 是400適合在這裏。您可以在響應中包含一條消息,以解釋爲什麼它被視爲一個錯誤的請求。

對於OPTIONS請求,有許多該講的響應代碼只是被相關的具體要求其他職位,如: https://stackoverflow.com/a/14703357/3417917 200響應是蠻好用的輸送可用於資源的選項,但如果您想表達請求不好,您可以發送一般400請求。

+0

完美,所以我會回答4xx的選擇請求...我很確定200是強制性的。感謝您的幫助和鏈接 – farvilain

相關問題