核心問題是關於使用HTTP頭,包括Range,If-Range,Accept-Ranges和用戶定義的範圍說明符。使用帶範圍說明符而不是字節的HTTP範圍標題?
這裏是一個製造的例子來幫助說明我的問題。假設我有一個Web 2.0風格的應用程序,它顯示某種人類可讀的文檔。這些文件編輯分成多個頁面(類似於您在新聞網站上看到的文章)。對於這個例子,假設:
- 有一個標題爲「HTTP範圍問題」的文檔分成三頁。
- shell頁面(
/document/shell/http-range-question
)知道關於文檔的元信息,包括頁面的數量。 - 文檔的第一個可讀頁面在頁面onload事件期間通過ajax GET加載並插入頁面。
- 看起來像[1 2 3所有]的UI控件位於頁面底部,單擊某個數字將顯示該可讀頁面(也通過ajax加載),然後單擊「全部」將顯示整個文件。假定這些URL的1,2,3和所有的用例:
/document/content/http-range-question?page=1
/document/content/http-range-question?page=2
/document/content/http-range-question?page=3
/document/content/http-range-question
我們的問題。我可以使用HTTP範圍標頭而不是URL的一部分(例如查詢字符串參數)嗎?也許是這樣的GET /document/content/http-range-question
要求:
Range: page=1
它看起來像規範只定義字節範圍爲可以容許的,所以即使我做了我的Ajax調用與我的瀏覽器和服務器代碼的工作,中間什麼事情都可能打破合同(如緩存代理服務器)。
Range: bytes=0-499
自定義範圍說明符的任何意見或現實世界的例子?
更新:我沒有找到有關範圍的報頭(Paging in a Rest Collection),他們提到,Dojo的JsonRestStore使用自定義的範圍標頭值過類似的問題。
Range: items=0-24
[Paging in Rest Collection]的可能重複(http://stackoverflow.com/questions/924472/paging-in-a-rest-collection) – DanMan 2015-09-20 09:44:23
@DanMan - 我已經鏈接到類似的問題,但並非所有的HTTP都是REST,這會問一個關於允許值的問題,而不是REST語義。此外,不同的問題標題措辭有助於不同的人找到他們的答案。 – 2015-09-20 22:18:19