我可以在简单的套接字服务器上拒绝HTTP请求吗?

时间:2016-04-25 14:44:03

标签: java sockets http

当您创建一个简单的套接字服务器并获得http请求时,这非常烦人。如果您的服务器不支持http请求,那将非常烦人。有没有办法检测和拒绝http请求(来自webbrowsers)并且只接受tcp / socket连接?

1 个答案:

答案 0 :(得分:1)

不,因为您不知道客户端打算通过套接字发送的有效负载,直到您接受连接并阅读足够的内容来理解其谈论的HTTP。

在我看来,你应该想到客户遇到的挫折感,并做两件事:

  1. 为什么浏览器会被定向到您的(显然不是http)服务?你能阻止吗?
  2. 假设上面#1的答案是否定的,可以对http请求执行一些简单的检测,并使用硬编码的http响应进行响应,该响应在发送它的浏览器上呈现为可读错误? (是的,即使你的服务不是http) - 一个简单的检测将采取你的输入缓冲区,解码为us-ascii字符串,如果它以9个HTTP请求方法之一启动,则发出一些硬编码的http错误响应。我建议错误代码402 - 需要付款: - )