基本上,我試圖發送一個2GB的HTTP POST數據包到我的網站來測試它,因爲HTTP GET不能那麼高。但是,我對此並不是很有經驗,需要就如何實際嘗試這方面提供建議/解釋。先謝謝你。如何將2GB POST數據包發送到站點?
回答
嘗試這樣做時會出現很多問題。我會盡量簡短地回顧一下 -
1)服務器設置 - 許多服務器默認情況下會因爲安全原因阻止2GB POST(擁有無限或高郵件最大值會使DoS更容易)。 PHP的默認值爲20M。
1-a)服務器設置 - 許多服務器也有超時設置,如果請求沒有在一定的時間內完成,它將放棄該請求。 2GB可能會導致此設置觸發。
2)瀏覽器設置 - 我對此不積極,但您的瀏覽器也可能會嘗試阻止這種情況。
3)硬件 - 會有多個硬件瓶頸可能導致問題。物理內存(服務器和客戶端),網絡帶寬,可用的硬盤空間(在服務器上寫入權限,取決於您使用的是什麼)。
4)第三方主機 - 如果您的網站由第三方託管,他們可能已採取安全措施來阻止此事。
這可能不是一個完整的列表 - 但在傳輸過程中的許多不同階段,2GB的文件可能會遇到問題。
如果你想辦法把它 - 這是一種方式
<html>
<body>
<form method="post">
<input type="hidden"
<?php
echo " value='";
for($i=0;$i<2147483648;$i++)
{
echo "a";
}
echo "'";
?>
>
<input type="submit">
</form>
<?php if(isset($_POST['test'])){
echo $_POST['test'];
}
?>
</body>
</html>
雖然,我真的不建議使用這種方式。我沒有測試過,因爲我現在不想破壞我的網絡服務器。而我的數學,可能有點關 - 但假設1個字符是1個字節(基本ascii)。這將工作,如果頁面加載。
我意識到這一點,但我仍然想知道如何實際創建2GB請求併發送它。 –
我該如何運行它,將其發送到網站? –
點擊提交按鈕。 (我只是在代碼中添加了一些功能,當你點擊提交後,一堆'a將會顯示'2GB'a' – Scott
由於使用HTTP請求從點A到點B傳輸2GB似乎不合適(對於您的情況?),您可能希望在某些時候查看FTP/Javascript,以便傳輸數據在後臺運行,不會凍結瀏覽器和服務器。
假設:
您的服務器可以通過FTP
處理文件傳輸您2GB的數據都在客戶端存儲的地方,而不是在飛行中產生的。
有與您可以管理使用FTP
通過上述庫文件傳輸(連接並且實際傳輸),以及一些AJAX,你想也需要同步您的HTTP POST請求生命javascript庫與您的文件傳輸狀態一起循環。然後,在請求中,您可以堅持只提交關於您上傳的2GB的信息。
我已經搜索引擎搜索類似「ftp javascript client」的東西,只有商業瀏覽器嵌入的FTP客戶端被列出。(如果我說廢話,請隨時糾正我)。
- 1. 如何將此HTTP POST數據包發送到網站?
- 2. 如何使用NodeJ將POST數據發送到HTTP端點
- 3. 將數據從一個站點發送到另一個站點
- 4. 用post方法發送數據到另一個站點
- 5. 發送數據到Django站點
- 6. 從Asp.Net站點發送數據到EventHub
- 7. 如何發送POST值到網站?
- 8. 將參數發送到其他站點
- 9. 如何使用vba將數據發送到網站數據庫
- 10. 發送數據包到USB端點
- 11. 從PHP Zend-Framework站點發送POST
- 12. 如何將json數據從Angularjs post發送到Django視圖?
- 13. 如何將POST請求發送到XML以獲取數據?
- 14. 如何通過AJAX POST將「數據」發送到ASMX Web服務?
- 15. EXTJS - 如何將文本數據發送到服務器POST
- 16. 如何使用winapi將POST請求發送到某個網站?
- 17. 如何將HTTP POST請求發送到其他網站?
- 18. 如何發送數據包到內核?
- 19. 發送POST數據
- 20. 發送POST數據
- 21. 發送數據到網站
- 22. 通過3G硬件設備將數據發送到ftp站點?
- 23. 在站點之間發送數據
- 24. 發送POST數據到一個網站與PHP
- 25. ajax POST不能發送數據到servelet
- 26. 發送POST數據到URL與CefSharp C#
- 27. 如何使用TW3HttpRequest發送POST數據
- 28. IWebBrowserApp.Navigate()如何發送POST數據
- 29. 如何發送數據與$ http post
- 30. 如何通過url.openStream()發送POST數據?
實施什麼?發送POST HTTP請求而不是GET HTTP請求?還是有一些其他的實現解釋你正在尋找?可能的重複:http://stackoverflow.com/a/4206094/1195273 – crush
從這裏開始 - 這是嘗試執行此操作時可能發生的許多問題之一 - http://stackoverflow.com/questions/2364840/what-is - 請求的大小限制 – Scott
@crush - 此問題不是您鏈接的問題的重複。 OP的用例要求比大多數代理服務器具有更大的POST數據,並且服務器將允許沒有分塊。 – Perception