第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

為什么在使用 HTTP Accept-Ranges 提供大文件時(shí)未滿足 PHP

為什么在使用 HTTP Accept-Ranges 提供大文件時(shí)未滿足 PHP

PHP
拉丁的傳說 2024-01-19 10:07:42
以下腳本用于(評(píng)估)向客戶端發(fā)送大型視頻文件。它在后面使用http headers Accept-Ranges。即使在處理大文件(> 2 GB)時(shí),也不會(huì)滿足 PHP 限制(為了測(cè)試,我設(shè)置了較小的值,例如 memory_limit=16MB 和 max_execution_time=30)。我想“理解”后面的上下文,因?yàn)?chrome 僅顯示一個(gè)(部分)請(qǐng)求,每隔幾秒增加“時(shí)間”和“大小”,盡管 apache 日志文件中沒有顯示其他請(qǐng)求。$file = './videos/' . basename($_GET['video']);if(!file_exists($file)) return; $fp = @fopen($file, 'rb');      $size   = filesize($file); // File size $length = $size;           // Content length$start  = 0;               // Start byte$end    = $size - 1;       // End byte  header('Content-type: video/mp4');header("Accept-Ranges: 0-$length");header("Accept-Ranges: bytes"); if (isset($_SERVER['HTTP_RANGE'])) {    $c_start = $start;                  $c_end   = $end;                    list(, $range) = explode('=', $_SERVER['HTTP_RANGE'], 2);    if (strpos($range, ',') !== false) {        header('HTTP/1.1 416 Requested Range Not Satisfiable');        header("Content-Range: bytes $start-$end/$size");        exit;          }                  if ($range == '-') {                    $c_start = $size - substr($range, 1);    }else{                 $range  = explode('-', $range);         $c_start = $range[0];                   $c_end   = (isset($range[1]) && is_numeric($range[1])) ? $range[1] : $size;    }    $c_end = ($c_end > $end) ? $end : $c_end;    if ($c_start > $c_end || $c_start > $size - 1 || $c_end >= $size) {         header('HTTP/1.1 416 Requested Range Not Satisfiable');        header("Content-Range: bytes $start-$end/$size");        exit;          }    $start  = $c_start;                 $end    = $c_end;                   $length = $end - $start + 1;        fseek($fp, $start);                 header('HTTP/1.1 206 Partial Content');}   
查看完整描述

1 回答

?
素胚勾勒不出你

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超9個(gè)贊

curl通過在不使用任何范圍標(biāo)頭的情況下通過命令行請(qǐng)求腳本,同時(shí)擁有max_execution_time=1并提供 2.893 GB 文件,找出了更多詳細(xì)信息。


在同一臺(tái)機(jī)器上(在 7 秒和 678 MB 處中止):


% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                 Dload  Upload   Total   Spent    Left  Speed  

23 2893M   23  678M    0     0  92.5M      0  0:00:31  0:00:07  0:00:24     0 

curl: (18) transfer closed with 2322893144 bytes remaining to read

在帶寬較低的外國機(jī)器上(在 49 秒和 599 MB 處中止):


% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                 Dload  Upload   Total   Spent    Left  Speed  

20 2893M   20  599M    0     0  12.1M      0  0:03:58  0:00:49  0:03:09 10284 

curl: (18) transfer closed with 2404747608 bytes remaining to read

就此而言,amax_execution_time=30在這種情況下并不是真正的“小”,因?yàn)樗试S傳輸估計(jì)約 30 * 600 MB(= 18 GB?。?蛻舳说恼?qǐng)求持續(xù)時(shí)間與服務(wù)器端的執(zhí)行時(shí)間完全無關(guān)。


事實(shí)上,當(dāng)從 html5 視頻對(duì)象中調(diào)用腳本時(shí),會(huì)完成多個(gè)部分請(qǐng)求max_execution_time=1(在帶寬更低的桌面客戶端上,每個(gè)請(qǐng)求大約需要 14 分鐘,直到中止并傳輸大約 500 MB)。


最后,我很困惑,因?yàn)榭蛻舳苏?qǐng)求持續(xù)時(shí)間和服務(wù)器端執(zhí)行時(shí)間之間存在巨大差異。


查看完整回答
反對(duì) 回復(fù) 2024-01-19
  • 1 回答
  • 0 關(guān)注
  • 221 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)