大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 Java實現斷點上傳視頻文件

Java實現斷點上傳視頻文件

更新時間:2020-11-25 16:03:35 來源:動力節點 瀏覽2698次

所謂斷點續傳,其實只是指下載,也就是要從文件已經下載的地方開始繼續下載。在以前版本的HTTP協議是不支持斷點的,HTTP/1.1開始就支持了。一般斷點下載時才用到Range和Content-Range實體頭。HTTP協議本身不支持斷點上傳,需要自己實現。

java實現上傳視頻文件

Range

用于請求頭中,指定第一個字節的位置和最后一個字節的位置,一般格式:

Range:用于客戶端到服務端的請求,可以通過改字段指定下載文件的某一段大小及其單位,字節偏移從0開始。典型格式:

Ranges:(unit=first byte pos)-[last byte pos]

Ranges:bytes=4000-下載從第4000字節開始到文件結束部分

Ranges:bytes=0~N下載第0-N字節范圍的內容

Ranges:bytes=M-N下載第M-N字節范圍的內容

Ranges:bytes=-N下載最后N字節內容

1.以下幾點需要注意:

(1)這個數據區間是個閉合區間,起始值是0,所以“Range:bytes=0-1”這樣一個請求實際上是在請求開頭的2個字節。

(2)“Range:bytes=-200”,它不是表示請求文件開始位置的201個字節,而是表示要請求文件結尾處的200個字節。

(3)如果last byte pos小于first byte pos,那么這個Range請求就是無效請求,server需要忽略這個Range請求,然后回應一個200,把整個文件發給client。

(4)如果last byte pos大于等于文件長度,那么這個Range請求被認為是不能滿足的,server需要回應一個416,Requested range not satisfiable。

2.示例解釋:

表示頭500個字節:bytes=0-499

表示第二個500字節:bytes=500-999

表示最后500個字節:bytes=-500

表示500字節以后的范圍:bytes=500-

第一個和最后一個字節:bytes=0-0,-1

同時指定幾個范圍:bytes=500-600,601-999

Content-Range

用于響應頭,指定整個實體中的一部分的插入位置,他也指示了整個實體的長度。在服務器向客戶返回一個部分響應,它必須描述響應覆蓋的范圍和整個實體長度。一般格式:

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

Header示例

請求下載整個文件:

GET/test.rar HTTP/1.1

Connection:close

Host:116.1.219.219

Range:bytes=0-801//一般請求下載整個文件是bytes=0-或不用這個頭

一般正常回應

HTTP/1.1 200 OK

Content-Length:801

Content-Type:application/octet-stream

Content-Range:bytes 0-800/801//801:文件總大小

一個最簡單的斷點續傳實現大概如下:

1.客戶端下載一個1024K的文件,已經下載了其中512K

2.網絡中斷,客戶端請求續傳,因此需要在HTTP頭中申明本次需要續傳的片段:

Range:bytes=512000-

這個頭通知服務端從文件的512K位置開始傳輸文件

3.服務端收到斷點續傳請求,從文件的512K位置開始傳輸,并且在HTTP頭中增加:

Content-Range:bytes 512000-/1024000

并且此時服務端返回的HTTP狀態碼應該是206,而不是200。

但是在實際場景中,會出現一種情況,即在終端發起續傳請求時,URL對應的文件內容在服務端已經發生變化,此時續傳的數據肯定是錯誤的。如何解決這個問題了?顯然此時我們需要有一個標識文件唯一性的方法。在RFC2616中也有相應的定義,比如實現Last-Modified來標識文件的最后修改時間,這樣即可判斷出續傳文件時是否已經發生過改動。同時RFC2616中還定義有一個ETag的頭,可以使用ETag頭來放置文件的唯一標識,比如文件的MD5值。

終端在發起續傳請求時應該在HTTP頭中申明If-Match或者If-Modified-Since字段,幫助服務端判別文件變化。

另外RFC2616中同時定義有一個If-Range頭,終端如果在續傳是使用If-Range。If-Range中的內容可以為最初收到的ETag頭或者是Last-Modfied中的最后修改時候。服務端在收到續傳請求時,通過If-Range中的內容進行校驗,校驗一致時返回206的續傳回應,不一致時服務端則返回200回應,回應的內容為新的文件的全部數據。

java實現上傳視頻文件

以上就是動力節點java培訓機構的小編針對“Java實現斷點上傳視頻文件”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 天天色天天操天天 | 欧美日韩在大午夜爽爽影院 | 欧美日韩专区 | 成人亚洲欧美 | 天天干天天色天天射 | 情趣视频网站在线观看 | 国产日本亚洲 | 久久天天躁狠狠躁夜夜爽蜜月 | 国产成人精品区在线观看 | 午夜主播国产福利视频在线 | 国产成人mv在线观看入口视频 | 亚洲伊人久久综合一区二区 | 777福利 | 97视频免费播放观看在线视频 | 国产片一区二区三区 | 久久精品国产久金国产思思 | 国产成人一区二区三区视频免费 | 国产精品久久在线 | 国产精品主播在线 | 久久亚洲国产精品五月天 | 久久久日本精品一区二区三区 | 手机免费看一级片 | 日本免费中文字幕在线看 | 国产欧美日韩精品高清二区综合区 | 国产网红主播 | 午夜一级精品免费毛片 | 国产美女网址 | 国产麻豆va精品视频 | 国产一区二区在线观看视频 | 四虎 2022 永久网站 | 久久99精品国产自在现线小黄鸭 | 夜夜躁日日躁狠狠 | 一区二区三区四区在线观看视频 | 天天天天鲁天天拍一拍 | 国内精自品线一区91 | 亚洲精品一区二区观看 | 国产美女在线免费观看 | 亚洲天堂福利视频 | 亚洲精品视频在线看 | 美国免费三片在线观看 | 高清黄色毛片 |