我的CGI腳本使用標題Content-Disposition: attachment
和Transfer-Encoding: chunked
,所以我打印文件內容塊。如何模擬與CGI的網絡(連接)錯誤
由於內容取決於很多因素,並且它是實時生成的,所以在某些情況下,腳本無法完成其工作。如果發生這種情況,已發送的部分內容是無效文件。如果腳本以正常方式結束,Web服務器關閉連接和瀏覽器接受內容完整,並提供用戶保存或打開下載的文件,即使它是無效的。
我正在尋找解決方案如何模擬網絡錯誤或任何類似的會導致一些錯誤,所以瀏覽器不會相信下載已成功完成,並不會提供客戶端來保存或打開這樣的文件。
有趣的問題。腳本錯誤通常通過HTTP標頭傳遞給瀏覽器,但是具有挑戰性的是,大多數瀏覽器在內容已經發送之後不會識別標頭。 作爲這樣做的另一種方式,您的腳本可以緩衝服務器端的所有內容(無論是在內存中的臨時文件),直到您確定您擁有所有內容,然後只發送整個內容瀏覽器一旦知道它是完好的? – mti2935
@ mti2935 - 正確!即使規範爲「chunked」編碼,也允許在文件結尾處的內容之後存在標題,主要瀏覽器尚未實現此功能。至於你的第二部分評論 - 就我而言,內容不能被緩存或延遲,需要儘快發送。 –
您是在客戶端還是CGI測試? – chooban