欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

基于SpringMVC實(shí)現(xiàn)斷點(diǎn)續(xù)傳的示例

這篇文章主要介紹了基于SpringMVC實(shí)現(xiàn)斷點(diǎn)續(xù)傳的示例,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)提供網(wǎng)站設(shè)計(jì)制作、做網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì),成都品牌網(wǎng)站建設(shè),廣告投放平臺(tái)等致力于企業(yè)網(wǎng)站建設(shè)與公司網(wǎng)站制作,10年的網(wǎng)站開(kāi)發(fā)和建站經(jīng)驗(yàn),助力企業(yè)信息化建設(shè),成功案例突破近1000家,是您實(shí)現(xiàn)網(wǎng)站建設(shè)的好選擇.

一、概述

所謂斷點(diǎn)續(xù)傳,其實(shí)只是指下載,也就是要從文件已經(jīng)下載的地方開(kāi)始繼續(xù)下載。在以前版本的HTTP協(xié)議是不支持?jǐn)帱c(diǎn)的,HTTP/1.1開(kāi)始就支持了。一般斷點(diǎn)下載時(shí)才用到Range和Content-Range實(shí)體頭。HTTP協(xié)議本身不支持?jǐn)帱c(diǎn)上傳,需要自己實(shí)現(xiàn)。

二、Range

用于請(qǐng)求頭中,指定第一個(gè)字節(jié)的位置和最后一個(gè)字節(jié)的位置,一般格式:

Range:用于客戶(hù)端到服務(wù)端的請(qǐng)求,可以通過(guò)改字段指定下載文件的某一段大小及其單位,字節(jié)偏移從0開(kāi)始。典型格式:

Ranges: (unit=first byte pos)-[last byte pos]  Ranges: bytes=4000- 下載從第4000字節(jié)開(kāi)始到文件結(jié)束部分  Ranges: bytes=0~N 下載第0-N字節(jié)范圍的內(nèi)容  Ranges: bytes=M-N 下載第M-N字節(jié)范圍的內(nèi)容  Ranges: bytes=-N 下載最后N字節(jié)內(nèi)容

1.以下幾點(diǎn)需要注意:

(1)這個(gè)數(shù)據(jù)區(qū)間是個(gè)閉合區(qū)間,起始值是0,所以“Range: bytes=0-1”這樣一個(gè)請(qǐng)求實(shí)際上是在請(qǐng)求開(kāi)頭的2個(gè)字節(jié)。

(2)“Range: bytes=-200”,它不是表示請(qǐng)求文件開(kāi)始位置的201個(gè)字節(jié),而是表示要請(qǐng)求文件結(jié)尾處的200個(gè)字節(jié)。

(3)如果last byte pos小于first byte pos,那么這個(gè)Range請(qǐng)求就是無(wú)效請(qǐng)求,server需要忽略這個(gè)Range請(qǐng)求,然后回應(yīng)一個(gè)200,把整個(gè)文件發(fā)給client。

(4)如果last byte pos大于等于文件長(zhǎng)度,那么這個(gè)Range請(qǐng)求被認(rèn)為是不能滿(mǎn)足的,server需要回應(yīng)一個(gè)416,Requested range not satisfiable。

2.示例解釋?zhuān)?/p>

表示頭500個(gè)字節(jié):bytes=0-499

表示第二個(gè)500字節(jié):bytes=500-999

表示最后500個(gè)字節(jié):bytes=-500

表示500字節(jié)以后的范圍:bytes=500-

第一個(gè)和最后一個(gè)字節(jié):bytes=0-0,-1

同時(shí)指定幾個(gè)范圍:bytes=500-600,601-999

三、Content-Range

用于響應(yīng)頭,指定整個(gè)實(shí)體中的一部分的插入位置,他也指示了整個(gè)實(shí)體的長(zhǎng)度。在服務(wù)器向客戶(hù)返回一個(gè)部分響應(yīng),它必須描述響應(yīng)覆蓋的范圍和整個(gè)實(shí)體長(zhǎng)度。一般格式:

Content-Range: bytes (unit first byte pos) - [last byte pos]/[entity legth]

四、Header示例

請(qǐng)求下載整個(gè)文件:

GET /test.rar HTTP/1.1 Connection: close Host: 116.1.219.219 Range: bytes=0-801 //一般請(qǐng)求下載整個(gè)文件是bytes=0- 或不用這個(gè)頭

一般正常回應(yīng)

HTTP/1.1 200 OK Content-Length: 801   Content-Type: application/octet-stream Content-Range: bytes 0-800/801 //801:文件總大小

一個(gè)最簡(jiǎn)單的斷點(diǎn)續(xù)傳實(shí)現(xiàn)大概如下:

1.客戶(hù)端下載一個(gè)1024K的文件,已經(jīng)下載了其中512K

2. 網(wǎng)絡(luò)中斷,客戶(hù)端請(qǐng)求續(xù)傳,因此需要在HTTP頭中申明本次需要續(xù)傳的片段:

Range:bytes=512000-

這個(gè)頭通知服務(wù)端從文件的512K位置開(kāi)始傳輸文件

3. 服務(wù)端收到斷點(diǎn)續(xù)傳請(qǐng)求,從文件的512K位置開(kāi)始傳輸,并且在HTTP頭中增加:

Content-Range:bytes 512000-/1024000

并且此時(shí)服務(wù)端返回的HTTP狀態(tài)碼應(yīng)該是206,而不是200。

但是在實(shí)際場(chǎng)景中,會(huì)出現(xiàn)一種情況,即在終端發(fā)起續(xù)傳請(qǐng)求時(shí),URL對(duì)應(yīng)的文件內(nèi)容在服務(wù)端已經(jīng)發(fā)生變化,此時(shí)續(xù)傳的數(shù)據(jù)肯定是錯(cuò)誤的。如何解決這個(gè)問(wèn)題了?顯然此時(shí)我們需要有一個(gè)標(biāo)識(shí)文件唯一性的方法。在RFC2616中也有相應(yīng)的定義,比如實(shí)現(xiàn)Last-Modified來(lái)標(biāo)識(shí)文件的最后修改時(shí)間,這樣即可判斷出續(xù)傳文件時(shí)是否已經(jīng)發(fā)生過(guò)改動(dòng)。同時(shí)RFC2616中還定義有一個(gè)ETag的頭,可以使用ETag頭來(lái)放置文件的唯一標(biāo)識(shí),比如文件的MD5值。

終端在發(fā)起續(xù)傳請(qǐng)求時(shí)應(yīng)該在HTTP頭中申明If-Match 或者If-Modified-Since 字段,幫助服務(wù)端判別文件變化。

另外RFC2616中同時(shí)定義有一個(gè)If-Range頭,終端如果在續(xù)傳是使用If-Range。If-Range中的內(nèi)容可以為最初收到的ETag頭或者是Last-Modfied中的最后修改時(shí)候。服務(wù)端在收到續(xù)傳請(qǐng)求時(shí),通過(guò)If-Range中的內(nèi)容進(jìn)行校驗(yàn),校驗(yàn)一致時(shí)返回206的續(xù)傳回應(yīng),不一致時(shí)服務(wù)端則返回200回應(yīng),回應(yīng)的內(nèi)容為新的文件的全部數(shù)據(jù)。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“基于SpringMVC實(shí)現(xiàn)斷點(diǎn)續(xù)傳的示例”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

當(dāng)前名稱(chēng):基于SpringMVC實(shí)現(xiàn)斷點(diǎn)續(xù)傳的示例
文章URL:http://aaarwkj.com/article12/peiggc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、微信公眾號(hào)、移動(dòng)網(wǎng)站建設(shè)、建站公司、網(wǎng)站導(dǎo)航網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都app開(kāi)發(fā)公司
亚洲男人天堂最新地址| 亚洲成av人片一区二久久精品| 欧美高清视频免费播放| 人妻少妇被猛烈进入中文字幕91| 日韩午夜电影一区二区三区| 加勒比久久精品网址系列| 蜜臀av免费在线观看| 国产极品美女高潮抽搐| 日韩一区二区三区av在线 | 国产白丝诱惑在线视频| 丰满肥臀熟女高清区二区| 麻豆精品国产粉嫩av| 日本高清不卡在线一区二区| 亚洲国产精品中文字幕久久| 日本免费观看一区久久| 国产91一区二区三区在线精品| 日韩a国产v亚洲欧美精品| 成人黄色av在线看| 亚洲精品乱码国产妇女毛片| 中文字幕不卡一区在线| 欧美日韩国产精品一区二区三区 | 神马影院在线观看午夜| 欧美日韩亚洲1区2区| 在线观看中文字幕有码| 亚洲无线码一区国产欧美国日| 91久久亚洲综合精品成人| 国产污视频网站在线观看| 午夜神马福利激情视频| 国产精品粗又长一区| 亚洲欧美综合日韩综合久久久| 四虎精品永久在线视频| 国产v精品欧美精品v日韩| 日本岛国一区二区在线| 成人性生交视频免费看| 麻豆视传媒短视频网站| 男女搞j视频网站免费观看| 久久国产精品99久久久| 99精品午夜福利在线| 午夜影院免费在线观看五分钟| 黄片免费在线播放欧美| av小说亚洲激情乱|