只有当访问者请求访问已启用且关联了 waiting room 的主机和路径组合时,waiting room 才会使用 __cfwaitingroom cookie。当 waiting room 暂停时,流量将进入源站,且不会创建 __cfwaitingroom cookie。__cfwaitingroom cookie 经过加密,以防止用户修改。您可以在 waiting room cookie 后附加一个自定义后缀,以自定义您的 waiting room cookie 的名称。
__cfwaitingroom cookie 用于:
- 跟踪用户在 waiting room 队列中的位置并按正确的顺序为其提供服务。
- 监控每个访问者在应用程序中的持续时间,以便为在 waiting room 排队的访问者提供准确的进入时间。
- 允许在一段时间内(由 session_duration 指定)重新进入而无需回到 waiting room。
- 当访问者留在 waiting room 中时,
__cfwaitingroomcookie 的过期时间始终设置为 5 分钟,但只要访问者不关闭标签页或离开您的应用程序,它就会每 20 秒自动续订一次。 - 当访问者访问应用程序时,
__cfwaitingroomcookie 在一个间隔(由 session_duration 指定)后过期。
您可以通过在 __cfwaitingroom 末尾添加自定义后缀来自定义 waiting room cookie 的名称。
要通过 UI 执行此操作,请在创建或编辑工作流中填写“Custom cookie(自定义 cookie)”字段。要通过 API 执行此操作,请在创建或编辑 waiting room 时输入 cookie_suffix 的值。当为单个 waiting room 使用其他主机名和路径时,cookie 后缀是必填字段。请确保您的 cookie 符合任何适用的策略。
当访问者首次进入您的 waiting room 的主机和路径组合时,他们会收到 __cfwaitingroom cookie。该 cookie 包含一个唯一的 group ID,它对应于您的访问者进入 waiting room 的分钟。使用此值,我们可以知道在特定组前面有多少访问者。
每个 cookie 还包含一个 acceptedAt 的值,它对应于您的访问者进入您的应用程序的分钟。此值使我们知道每分钟有多少访问者离开 waiting room 进入您的应用程序。
visitorsAhead ÷ activeUsersToWebApplication = estimatedWaitTime我们结合这些信息来计算每组访问者的预计等待时间。
有关 Cloudflare Waiting Room 技术实现的更多详细信息,请参阅博客文章 ↗。