2012-10-29 85 views
0

什麼是學習使用java的TCP套接字編程的好起點。HTTP套接字編程java

我在java軟件編程方面有相當不錯的經驗,但是對於netwrk/socket編程來說是新手。

我正在開發代理緩存服務器。但無法閱讀帖子請求/ 302/405請求。 我參考了下面的代碼。

http://blog.edendekker.me/a-java-proxy-server-with-caching-and-validation/

但無法修改代碼以念想www.gmail.com網址返回302永久移動錯誤或405方法不適錯誤。也不能讀取POST請求。

什麼是我可以閱讀有關處理錯誤和處理POST請求的起點。 任何參考鏈接,示例代碼都會有幫助。類似的主題

我的上一個問題:

Handle a POST request and write response to client socket

感謝

+1

反對的理由對我有幫助。 – crazyTechie

回答

1

它看起來像你的問題,而不是TCP這樣更關係到HTTP。你想實現一個代理服務器來學習HTTP協議嗎?如果沒有,可以免費獲得幾個好代理,通常包括源代碼。如果您只想學習TCP套接字編程,可以嘗試更簡單的方法,例如POP3。另外,如果你想要做的TCP在Java中,要知道,有兩個主要的方法來實現它們:

每人應用
  • 一個線程連接
    • 一個線程,連接(Java NIO和NIO2)之間共享

    假設你確實想要解決HTTP代理問題。如果你想實現所有的功能,HTTP並不是微不足道的,例如瀏覽器使用,如緩存,身份驗證等,加上實施代理服務器時產生的額外複雜性。

    如果你真的想咬牙,here的HTTP協議更輕量級的版本,所有的細節,請參閱RFC 2616。但請注意,RFC 2616(HTTP 1.1規範)引用了其他RFC,您可能還需要針對特定​​區域(如身份驗證)進行諮詢。

    更新: 一個可能在某些情況下,更容易另一件事是使用瀏覽器和一個現成的,現成的代理之間說,一個HTTP proxy to sniff the communication可以快速地看到別人在做什麼。

  • +0

    謝謝。我想實現一個代理服務器來學習HTTP協議。我爲每個連接成功實現了一個線程。嘗試實現對POST的支持。 – crazyTechie

    0

    我在這裏有這個Gist,它有一個關於Sockets的Java編程的簡單例子,並且在Java類的註釋中,有一些鏈接,解釋了Socket類及其方法的用法。

    也許,在這個例子中,它可能是一個很好的起點:)。

    https://gist.github.com/ivanlmj/022bada3c93c0a04a842bb7e4d56a134

    PS。:如果您想爲測試目的部署Web服務器,Gist還包含運行PythonFLASK應用程序的代碼,非常簡單。

    問候!