2009-11-15 45 views

回答

19
  • 我假設你在使用Linux和c語言的信心(對於無提示,否則不會與發展中國家的代理開始)
  • 閱讀並理解RFC 1945 HTTP/1.0(注意具體提代理)
  • 確定你想要什麼樣的代理(網絡/緩存/內容過濾/ Anonymizer公司/透明/非透明/後退/網關/隧道/ ...)
  • 開始開發服務器

Basi C爲步長

  1. 打開端口
  2. 偵聽端口
  3. 獲得從客戶端發送到該端口的所有請求(也許是爲了多線程,以便能夠同時處理超過1個請求整件事)
  4. 確定它是否是一個有效的HTTP 1.0請求
  5. 提取請求組件
  6. 根據你是什麼類型的代理
  7. 重建請求發送新的請求
  8. 得到的迴應
  9. 發送響應客戶
+2

+1是因爲寬容,至少試圖提供有用的答案。 – 2009-11-15 12:25:19

+0

「向客戶發送回覆」如何?有桌子?哪些信息必須保存? – SjB 2009-11-20 20:16:41

+0

響應是在接受http請求(應該是網頁的html或服務器的消息)後返回給代理的任何內容。 – svarog 2014-01-20 17:35:00

6

如何創建一個代理服務器:

  1. 打開一個端口上
  2. 捕捉監聽該報告
  3. 所有傳入的請求確定Web地址請求
  4. 打開到主機的連接並轉發請求
  5. 接收響應
  6. 將響應發送回請求的客戶端

此外:使用線程允許多個請求到服務器。

+0

獲得更好的性能(或者,如果你喜歡一些挑戰),嘗試使用線程池,而不是隻是一堆線程 的http:// EN .wikipedia.org/wiki/Thread_pool_pattern – svarog 2014-01-20 17:37:29

相關問題