帶範圍限制的 HTTP PUT 請求語法

HTTP PUT 請求可以給出數據要保存到目標文件的那個區域內,相當於在寫入文件時指定了起始偏移量。寫入的區域可以尚不存在,這時的行爲同文件指針移動到超過尾部時一樣,都是在中間形成一個空洞,對應的目標文件也就變成了一個稀疏文件。

PUT 請求的區域範圍是通過請求頭中的 Content-Range 域來約束的,其簡單的語法爲:
[quote]Content-Range: bytes [b][i]起始位移[/i][/b]-[i][b]結束位移[/b][/i]/[i][b]總文件長度[/b][/i][/quote]

若總文件長度在發出請求時尚無法確定,則可以用 [b]*[/b] 代替。如下是幾個有效的範圍域的例子:
[quote]Content-Range: bytes 0-2/10
Content-Range: bytes 7-9/10
Content-Range: bytes 2333-7000/*
[/quote]

例如,我們想要寫入 WebDAV 服務器 localhost 上文件 /xxx 中偏移量 123 開始的 11 個字節,則整個請求爲:
[quote]PUT /xxx HTTP/1.1
Host: localhost
Content-Length: 11
Content-Range: 123-133/*

abcdeabcdea
[/quote]
這樣就將 11 個字節 abcdeabcdea 寫入了文件 xxx 中偏移量 123 字節處。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章