0

我有一个 C 项目,我在其中接收 HTTP GET 请求(端口 10000),处理它并发送适当的响应。我使用 winsock 库进行网络连接。我还有一个模块在不同的端口(端口 10001)上接收 HTTPS 请求。客户端指定它必须发送到哪个端口,如果它正在发送 http 消息,它将在端口 10000 上发送,如果是 https 请求,它将发送到端口 10001。因此,我意识到,即将到来的请求是HTTP 或 HTTPS 请求。有一个要求,客户端将只指定一个端口号,无论是 HTTP 还是 HTTPS,即它只会在端口 10000 上发送。

所以现在,当 HTTPS 消息到达端口 10000 时,它将全部加密,但我希望该消息转到端口 10001。有没有办法在服务器级别区分 HTTP 或 HTTPS 请求?

4

1 回答 1

2

如果来自客户端的第一个字节是0x16,它是 SSL 握手的开始。由于它不是 HTTP 请求的可能开始,您可以通过此属性区分请求。

于 2013-02-13T13:10:21.683 回答