【问题标题】:HTTP socket programming java [closed]HTTP套接字编程java [关闭]
【发布时间】:2012-10-29 04:28:34
【问题描述】:

使用 java 学习 TCP Socket 编程的良好起点是什么。

我在 java 软件编程方面有相当好的经验,但对网络/套接字编程是新手。

我正在开发代理缓存服务器。但无法读取发布请求/302/405 请求。 我在下面的代码中提到了这个。

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

但无法修改代码以读取返回 302 永久移动错误或 405 方法无效错误的 www.gmail.com 等 URL。而且也无法读取 POST 请求。

什么是我可以阅读有关处理错误和处理 POST 请求的起点。 任何参考链接、示例代码都会有所帮助。

我在类似主题中的上一个问题:

Handle a POST request and write response to client socket

谢谢

【问题讨论】:

  • 投反对票的原因对我有帮助。
  • 原因:1. 太宽泛。 2. 请求推荐rf-site资源。 3. 基于意见。 4. 已有数十本书籍、教程和 RFC 完整解答。

标签: java http sockets tcp network-programming


【解决方案1】:

看起来您的问题与 HTTP 的关系比与 TCP 的关系更大。你想实现一个代理服务器来学习 HTTP 协议吗?如果没有,有几个免费的好代理,通常包括源代码。如果您只想学习 TCP 套接字编程,请尝试一些更简单的东西,例如POP3。此外,如果您想在 Java 中执行 TCP,请注意有两种主要的实现方式:

  • 每个连接一个线程
  • 每个应用程序一个线程,在连接之间共享(Java NIO 和 NIO2)

假设您真的想要处理 HTTP 代理。如果您想实现所有功能,例如,HTTP 并非易事。浏览器使用,如缓存、身份验证等,以及实现代理时产生的额外复杂性。

如果你真的要咬紧牙关,here 是一个更轻量级的 HTTP 协议版本,所有细节请参考RFC 2616。但请注意,RFC 2616(HTTP 1.1 规范)引用了其他 RFC,您可能还需要针对特定​​领域(例如身份验证)查阅其他 RFC。

更新: 在某些情况下可能更容易的另一件事是在浏览器和现成代理之间使用HTTP proxy to sniff the communication 来快速查看其他人在做什么。

【讨论】:

  • 谢谢。我想实现一个代理服务器来学习 HTTP 协议。我成功地为每个连接实现了一个线程。正在尝试实现对 POST 的支持。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-02-05
  • 2012-08-02
  • 2015-08-22
  • 2018-09-09
  • 1970-01-01
  • 2011-11-10
  • 2014-09-09
相关资源
最近更新 更多