package dev.elaine.network;

import java.util.List;

public final class HttpJourneySample {
    private HttpJourneySample() {}

    public record Stage(String name, String output) {}

    public static List<Stage> journey(String host) {
        return List.of(
                new Stage("DNS", host + " -> IP 地址"),
                new Stage("ARP/邻居发现", "下一跳 IP -> 链路层地址"),
                new Stage("TCP", "建立可靠字节流"),
                new Stage("TLS", "验证身份并协商加密"),
                new Stage("HTTP", "发送方法、路径、头和正文"),
                new Stage("应用", "排队、执行业务、访问下游"));
    }

    public static void main(String[] args) {
        journey("example.com").forEach(stage ->
                System.out.printf("%-12s %s%n", stage.name(), stage.output()));
    }
}

