Post HTTP 和 HTTPS 协议请求
Post request in HTTP and HTTPS protocol
我们正在尝试在我们的嵌入式系统和网络之间建立安全通信 server.Firstly 我们在我们的微控制器中实现了 HTTP 连接。我只是连接到我的网络服务器的 80 端口,并向该端口发送简单的 GET 请求,如下例所示:
GET /foo.php?msg=test HTTP/1.1
HOST: foo.com
我的问题是,我们如何将其转换为 HTTPS?我应该连接哪个端口?
上面的 GET 请求的结构会有什么不同吗?我是否必须手动进行一些加密或连接到 "https" link 而不是 "http" 足以进行安全通信。
感谢任何信息
HTTP 请求和 HTTPS 请求之间的唯一区别是,第一个请求是通过普通 TCP 连接发送的,而另一个是通过 TLS 连接发送的,即:
- 使用 HTTP 建立 TCP 连接并通过此连接发送请求
- 使用 HTTPS 建立 TCP 连接,将此连接升级到 TLS(包括适当的证书验证等!)然后通过此连接发送与使用 HTTP 时相同的请求.
除此之外,我建议使用已建立的 HTTP 库或仔细阅读 standard。 虽然 HTTP 看起来很简单,但实际上并非如此,这里有很多问题,用户尝试执行简单的 HTTP 请求并遇到他们没有预料到的行为。
例如,在您的情况下,服务器可能会使用分块编码、内容长度或简单地以连接关闭来结束响应。它可能会等待同一连接上的进一步请求,因为 HTTP/1.1 隐式启用 HTTP keep-alive。您的代码真的能解决所有这些情况吗?
我们正在尝试在我们的嵌入式系统和网络之间建立安全通信 server.Firstly 我们在我们的微控制器中实现了 HTTP 连接。我只是连接到我的网络服务器的 80 端口,并向该端口发送简单的 GET 请求,如下例所示:
GET /foo.php?msg=test HTTP/1.1
HOST: foo.com
我的问题是,我们如何将其转换为 HTTPS?我应该连接哪个端口? 上面的 GET 请求的结构会有什么不同吗?我是否必须手动进行一些加密或连接到 "https" link 而不是 "http" 足以进行安全通信。
感谢任何信息
HTTP 请求和 HTTPS 请求之间的唯一区别是,第一个请求是通过普通 TCP 连接发送的,而另一个是通过 TLS 连接发送的,即:
- 使用 HTTP 建立 TCP 连接并通过此连接发送请求
- 使用 HTTPS 建立 TCP 连接,将此连接升级到 TLS(包括适当的证书验证等!)然后通过此连接发送与使用 HTTP 时相同的请求.
除此之外,我建议使用已建立的 HTTP 库或仔细阅读 standard。 虽然 HTTP 看起来很简单,但实际上并非如此,这里有很多问题,用户尝试执行简单的 HTTP 请求并遇到他们没有预料到的行为。
例如,在您的情况下,服务器可能会使用分块编码、内容长度或简单地以连接关闭来结束响应。它可能会等待同一连接上的进一步请求,因为 HTTP/1.1 隐式启用 HTTP keep-alive。您的代码真的能解决所有这些情况吗?