读懂失败信息
Coddy 使用终端进行网络通信 课程的第 46 课,共 47 课。
把整门课程的内容整合成一种方法。如果某处无法连接,你需要从少数几种原因中判断是哪一种,而每种原因都有明显的特征。
- 名称未能解析。连接尚未开始就立即失败。通过查询进行检查。
- 没有程序在监听。连接立即被拒绝,curl 退出码为 7。
- 流量被丢弃。连接一直挂起,然后以退出码 28 结束。
- 该端口不支持 TLS。退出码为 35。
- 连接成功。现在查看状态码:4xx 表示问题出在你的请求,5xx 表示问题出在对方。
其中两种情况的区别在于失败需要多长时间,所以留意失败是立即发生还是一直挂起,比看任何错误消息都更有用。
从堆栈底部开始向上处理:名称,然后是机器,然后是端口,然后是服务,最后是响应。
挑战
专家生成三种不同的失败,并用各自的退出代码标记。
在没有任何服务器运行的情况下,打印:
refused:以及来自http://127.0.0.1:9999/的代码dropped:以及来自http://10.255.255.1/的代码,时间限制为 2 秒notls:以及来自https://127.0.0.1:9999/的代码
预期输出:
refused: 7
dropped: 28
notls: 7第三种情况值得思考:如果完全没有程序在监听,连接会在尝试 TLS 之前就被拒绝。
亲手试试
终端
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
使用终端进行网络通信中的所有课
自己练习: Terminal 在线编辑器