我想向http://example.com/%2F
发送一个HTTP GET请求。我的第一个猜测可能是这样的:
using (WebClient webClient = new WebClient())
{
webClient.DownloadData("http://example.com/%2F");
}
不幸的是,我可以看到实际发送到网络的内容是:
GET // HTTP/1.1
Host: example.com
Connection: Keep-Alive
因此,将 http://example.com/%2F 转换为 http://example.com// ,然后再传输。
有没有一种方法可以实际发送这个 GET 请求?
当使用 OCSP over HTTP/GET 时,OCSP 协议规定必须发送 base-64 编码的 url-encoding ,因此需要发送实际的 %2F 而不是 '/' 以保持一致性。
编辑:
以下是 OCSP 协议标准(RFC 2560 附录 A.1.1)的相关部分:
使用 GET 方法构造 OCSP 请求的方式如下:
GET {url}/{url-encoding of base-64 encoding of the DER encoding of the OCSPRequest}
我非常愿意接受其他解读,但我无法看出还可能有其他含义。