2012-11-02 51 views
1

HTTP代碼這是一個有些簡單的問題,但遺憾的是我一直沒能找到一個具體的答案迄今。最佳實踐:爲用戶超過使用限制

我們正在構建一個API(我們不是在生產中還),其用戶認證後返回大量的數據,等API系統跟蹤每秒,每小時的基礎用戶在使用。當用戶超過這些限制時,服務器不返回任何內容和一些http錯誤代碼。

目前,我使用的是406不能接受的,但我不相信這是用最好的代碼。有人建議,509帶寬限制超出將是一個很好的,但我不知道是否有一個代碼將被視爲我的情況最佳實踐。預先感謝您的幫助!

回答

3

狀態碼429想到:

RFC 6585, section 4:429個請求過多

的429狀態代碼表示用戶在給定時間內發出了太多的 請求(「速度限制「)。

響應表示應該包括解釋 條件的詳細信息,並且可以包含一個Retry-After標題,表示 在發出新請求之前要等待的時間。

+0

好找,謝謝。這似乎比我的情況更適合406。 –

1

好吧,既然你已經找不到適用的錯誤代碼,我猜沒有一個。在這種情況下,如果我是你的話,我會用你的406或者其他類似的東西,只是決定一些東西並繼續使用它。瀏覽器無論如何都不在乎,而那些接受任何代碼的人都會使用這些API,並推斷出這是一條規則 - 「如果我超出了使用範圍,我會得到406」。我認爲它的神奇數字並不重要。

+0

我不認爲406適用:[RFC 2616,10.4.7 406不可接受](http://tools.ietf.org/html/rfc2616#section-10.4.7):_「not根據在請求「_」中發送的接受報頭,接受 。事實並非如此。 – CodeCaster

+0

好點,d33tah。我只是想要一些有意義的東西。好消息CodeCaster。我同意,406因爲這個原因似乎不太合適。因此我在尋找替代品。 –