我必須開發代理服務器,只能在Linux和c中使用HTTP 1.0。 我需要一些提示開始開發。如何在linux中編寫一個http1.0代理服務器?
4
A
回答
19
- 我假設你在使用Linux和c語言的信心(對於無提示,否則不會與發展中國家的代理開始)
- 閱讀並理解RFC 1945 HTTP/1.0(注意具體提代理)
- 確定你想要什麼樣的代理(網絡/緩存/內容過濾/ Anonymizer公司/透明/非透明/後退/網關/隧道/ ...)
- 開始開發服務器
Basi C爲步長
- 打開端口
- 偵聽端口
- 獲得從客戶端發送到該端口的所有請求(也許是爲了多線程,以便能夠同時處理超過1個請求整件事)
- 確定它是否是一個有效的HTTP 1.0請求
- 提取請求組件
- 根據你是什麼類型的代理
- 重建請求發送新的請求
- 得到的迴應
- 發送響應客戶
6
如何創建一個代理服務器:
- 打開一個端口上
- 捕捉監聽該報告
- 所有傳入的請求確定Web地址請求
- 打開到主機的連接並轉發請求
- 接收響應
- 將響應發送回請求的客戶端
此外:使用線程允許多個請求到服務器。
+0
獲得更好的性能(或者,如果你喜歡一些挑戰),嘗試使用線程池,而不是隻是一堆線程 的http:// EN .wikipedia.org/wiki/Thread_pool_pattern – svarog 2014-01-20 17:37:29
相關問題
- 1. 在linux下編寫一個curl代理
- 2. C linux代理服務器
- 3. 在C編寫的Linux TCP/IP服務器中處理Ctrl-C
- 4. 如何製作代理服務器我將作品編寫爲HTTPS服務器?
- 5. 寫代理服務器
- 6. 如何編寫遠程DataModule以在Linux服務器上運行?
- 7. 在.NET(C#或VB.NET)中編寫代理服務器?
- 8. 如何從另一臺linux服務器讀取Linux服務器的一個驅動器的寫入訪問
- 9. 如何在scala中編寫APNs服務器端代碼?
- 10. 如何在csHTML中編寫服務器端代碼
- 11. 如何在Perl中爲WWW編寫服務器端代碼?
- 12. 如何在Ruby中編寫改變Web代理服務器的內容?
- 13. 如何在OCaml中編寫Web服務器(服務)?
- 14. 編寫一個WebDAV服務器
- 15. 編寫一個WebSocket服務器
- 16. 如何在google上建立一個python代理服務器appengine
- 17. 在zip中編寫unicode文件名php(linux服務器)
- 18. 編寫一個C HTTP代理服務器 - 如何接收和重定向一個HTTP響應
- 19. 獲取一個php代理服務器?
- 20. 編寫多服務器代碼
- 21. apache用代理服務器重寫
- 22. Java:如何編寫一個wsgi服務器
- 23. Linux服務器編程
- 24. 在初始化/代理服務器/代理服務器/
- 25. 如何在C#中編寫代理?
- 26. 如何在Python中編寫Web代理
- 27. 如何在處理電子郵件服務器時處理代理服務器?
- 28. 如何在Umbraco中編寫Web服務?
- 29. 如何在C++中編寫Android服務
- 30. 如何在wordpress中編寫服務?
+1是因爲寬容,至少試圖提供有用的答案。 – 2009-11-15 12:25:19
「向客戶發送回覆」如何?有桌子?哪些信息必須保存? – SjB 2009-11-20 20:16:41
響應是在接受http請求(應該是網頁的html或服務器的消息)後返回給代理的任何內容。 – svarog 2014-01-20 17:35:00