【问题标题】:HTTPS session/cookiesHTTPS 会话/cookies
【发布时间】:2014-11-01 15:47:26
【问题描述】:

HTTP 是一种无状态协议,必须使用 cookie 来保存状态信息,以便 HTTP 应用程序可以在会话中运行。

HTTPS 也是无状态协议吗?使用什么机制来保持会话,通过 http cookie 或 TLS/SSL 会话?

【问题讨论】:

  • https 也确实是无状态的,在会话机制方面还有 cookie 的替代方案。
  • 这些替代品是什么?

标签: http https


【解决方案1】:

HTTPS 只是包裹在身份验证和加密层中的 HTTP。 (见this)。因此它是无状态的,就像 HTTP 是无状态的一样。 HTTPS 当前使用 TLS 或 SSL 作为加密层。这些协议具有状态,但应用程序不能使用该状态来维护其状态。

如果您不想使用 cookie 来维护状态,可以使用 HTTP Basic Authentication Mechanism。或者,您可以在 HTTP 请求或表单数据中使用 URL 发送会话信息。

【讨论】:

  • 谢谢! HTTPS 是无状态的。是否意味着每个 HTTPS(HTTP) 请求都会重新设置 TLS/SSL?
  • 好问题!如果下一个请求来自现有 TCP 连接,则将使用相同的 TLS/SSL 会话。如果没有,那么客户端可以尝试重用现有会话。如果失败,则需要创建一个新会话。 (如果您喜欢我的回答,请接受)。
  • "如果没有,那么客户端可以尝试重用现有会话"。您能否提供更多信息,客户将如何尝试?
  • @user1443721,SSL 和 TLS 都可以存储有关已建立会话的详细信息。对于 TLS,客户端可以通过将会话 ID 发送到服务器来恢复/重用现有会话。如果服务器也存储了会话,那么它告诉客户端它可以恢复会话 (ietf.org/rfc/rfc2246.txt) 第 7.3 节
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-19
  • 2012-07-07
  • 1970-01-01
  • 2012-09-27
  • 2018-05-02
  • 2011-01-20
相关资源
最近更新 更多