首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 斷點續傳實作(一):HTTP 協定 Range 標頭原理與 .NET 核心類別解析

     編輯:關於C語言

HTTP 協定基礎

HTTP 基於 TCP,分 請求 (Client→Server) 與 回應 (Server→Client),各由標頭與本體組成,中間以空行分隔。

請求/回應範例

GET /image/index_r4_c1.jpg HTTP/1.1
Accept: */*
Referer: https://192.168.3.120:8080
Range: bytes=1024-
Connection: Keep-Alive

HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Accept-Ranges: bytes
Content-Length: 2827
Content-Type: image/jpeg
...

斷點續傳核心:Range 標頭

請求標頭加入 Range: bytes=起始位置- 即可告知伺服器從指定位置傳送。

Range: bytes=1024-  // 從第 1024 位元組開始

伺服器回應 206 Partial Content 而非 200 OK,並附上 Content-Range 標頭。

.NET 核心類別

HttpWebRequest - HTTP 請求封裝

  • 公開常用標頭為屬性
  • Headers 集合設定自訂標頭
  • Range 為受保護標頭,但提供 AddRange() 方法便利設定

FileStream - 檔案隨機存取

  • Seek(offset, SeekOrigin):移動讀寫位置
  • SeekOrigin.Begin/Current/End:參考點 (開頭/目前/結尾)
  • 支援 BeginRead/EndRead、BeginWrite/EndWrite 非同步操作

下篇預告

完整斷點續傳下載程式碼實作與關鍵細節說明。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved