四步全通吗

👁️ 2 人浏览 💬 0 人评论 ❤️ 添加收藏

按模型,四步都 True 时 chain_ok 交回什么?

贯穿本节的全链路模型(判题机不联网、镜像没 dig/tcpdump,这是它的确定模型,见 spine.py):一次访问要依次走通四步——解析(DNS) → 连接(TCP) → 加密(TLS) → 请求(HTTP);证据 ev{步名: 是否 OK}

验证:chain_ok(ev)=四步全通、passed(ev)=过了几步、recovered(前,后)=坏过又全通、still_broken=还有步没通。

STEPS = ["解析", "连接", "加密", "请求"]


def chain_ok(ev):
    """全链路四步都通。"""
    return all(ev.get(s, False) for s in STEPS)


def passed(ev):
    """过了几步。"""
    return sum(1 for s in STEPS if ev.get(s, False))


def recovered(before, after):
    """之前坏过、现在全通,才算恢复。"""
    return (not chain_ok(before)) and chain_ok(after)


def still_broken(ev):
    """还有步没通吗。"""
    return not chain_ok(ev)

print(chain_ok({"解析": True, "连接": True, "加密": True, "请求": True}))
提交你的答案
请登录后提交答案。
去登录
代码编辑器
Ctrl + Enter 运行
本次输入:
输出:

                        
👩‍🏫
AI
💬 题目评论

全部评论