0

我需要在浏览器中发送不符合 RFC 的 HTTP 请求。我需要发送一个 GET 请求而不对 URL 进行编码。我不希望空格被编码为 %20。我知道浏览器不应该发送这样的请求,但这正是我的项目所需要的。

我想到了使用以下想法:

  1. XHR - 自动执行 URL 编码,没有办法对其进行操作。
  2. Java/Silverlight 小程序 - 在新的浏览器选项卡中打开 URL 不允许传递未编码的 URL。据我所知,小程序只是将 URL 地址传递给浏览器,它是打开它的浏览器。
  3. Java/Silverlight 小程序 - 发送原始 HTTP 请求并尝试在浏览器选项卡中显示结果。可能吗?如果是这样,浏览器会将响应视为有效的源服务器响应吗?我需要使用包含的(在服务器响应中)脚本访问 DOM,因此它不能破坏 SOP。

示例请求:
GET 资源 abc HTTP/1.1
主机:example.com

4

1 回答 1

0

在 HTTP 标头中,它看起来像 GET http://www.stackoverflow.com/ HTTP1.1

如果您不在 URL 中转义空格,它将破坏 HTTP 标头。没有符合 HTTP 的服务器能够理解该请求。

但是,如果您确实有正当理由这样做,您可以将数据写入套接字并将其发送到服务器。有关更多信息,请参阅 Oracle 教程上的 Java 套接字。

于 2013-06-18T20:29:02.457 回答