我有一個關於PHP的fopen()函數的問題(使用「php:// output」)。
服務器A使用此fopen()函數爲了從服務器B傳輸文件到用戶的計算機(我已經設置了所有必要的header()函數來強制下載)。
我的問題是:文件是否流式傳輸到服務器A,因此使用服務器A的帶寬資源?或者只會使用服務器B的帶寬?我想要流式文件而不是使用服務器A的帶寬資源,只有服務器B的。
謝謝你的幫助!PHP fopen:數據是否通過中間服務器傳輸?
0
A
回答
1
也許我誤解了,但是如果這些都是單獨的機器,它們會不會總是使用?一臺服務器具有該文件,因此必須使用消耗「上行」帶寬,另一臺服務器必須下載該文件,因此使用「下行」帶寬。如果服務器A繼續上傳文件到客戶端,那麼只有服務器A會被擊中,但它已經對兩臺機器施加了帶寬成本...所以對於1MB文件:
服務器A:1MB下載+ 1MB以上 服務器B:1MB以上
1
服務器A將被使用。 fopen()
完全在服務器端運行並將結果交付給客戶端,因此客戶端不會知道關於服務器B的任何信息。
如果您只想使用服務器B的資源,則需要在服務器上設置一個Web服務器服務器B爲服務請求服務,並簡單地使用服務器A指向服務器B上的資源。
4
服務器B將使用上傳帶寬(將文件發送到服務器A)。
服務器A將使用下載帶寬(從服務器A接收文件),並上傳帶寬(將文件發送給用戶)。
如果您擁有服務器A和服務器B,它們都是專用的,並且由同一個託管公司提供,他們通常會讓您購買內部交換機,以便將這兩臺機器連接在同一內部網絡上。這樣服務器的資源仍將被使用,但您不會因爲內部傳輸而收取費用。
請記住,將數據從一臺機器傳輸到另一臺將始終使用帶寬。這只是支付更多或不支付的問題。
相關問題
- 1. 是否可以通過http傳輸客戶端到服務器的數據?
- 2. 服務器之間的數據傳輸
- 3. FileStream.Seek()是否通過線傳輸數據?
- 4. 網絡/數據庫服務器之間的數據傳輸
- 5. 服務器通過HTTPS傳輸數據有多沉重?
- 6. HtttpResponseException:通過JSON傳遞輸入數據到服務器
- 7. 表格數據從iPhone上傳到PHP服務器通過https
- 8. 是否將Cookie「元數據」(expires,path,...)傳輸到服務器?
- 9. Web服務器和數據庫服務器之間的安全數據傳輸
- 10. 在兩個node.js服務器之間通過http傳輸文件
- 11. 通過WCF服務傳輸大量數據(超過64kb)
- 12. 如何通過PHP傳遞數組到PHP肥皂服務器?
- 13. 如何上傳數據到服務器並通過後臺服務在android中從服務器下載數據?
- 14. 移動應用和服務器之間的大數據傳輸
- 15. 在C++應用程序和服務器之間傳輸數據
- 16. 通過Angular 2服務傳遞數據
- 17. 通過PHP從服務器
- 18. fopen()失敗。它是服務器嗎?
- 19. 是否可以通過fopen從png獲取數據?
- 20. Flume:將數據傳輸到服務器
- 21. 如何通過IP地址將數據傳輸到Web服務器?
- 22. 本地服務器和AWS服務器之間的數據傳輸
- 23. 從HTTP服務器到TCP服務器的數據傳輸
- 24. 通過web服務按需流式傳輸數據
- 25. php上傳數據到mysql服務器
- 26. 是否有可能使用PHP網絡服務器在兩個客戶端之間傳輸數據?
- 27. Sql Azure是否通過數據庫或數據庫服務器收費
- 28. 通過Web服務在MySQL和SQLite之間傳輸數據的選項
- 29. 服務器到服務器的電子郵件傳輸是否安全?
- 30. 如何通過PHP Web服務器URL傳遞數組?
謝謝。你知道有什麼方法可以在不使用服務器上傳帶寬的情況下將文件從服務器B傳輸給用戶嗎?注意:我不能使用到服務器B的直接鏈接,因爲它沒有提供 - 我必須先登錄到服務器。 – Hope4You 2011-12-28 17:26:23
@hope:如果您不能直接連接到serverB,則無法避免使用代理服務器(A)並同時使用上傳和下載帶寬。 – 2011-12-28 17:28:03