Menu
CoddyTech

协议方案决定端口

Coddy 使用终端进行网络通信 课程的第 39 课,共 47 课。

http:// 和 https:// 的区别不止一个字母。方案决定两件事:使用哪个默认端口,80 还是 443,以及在发送任何内容之前是否启动 TLS 握手。

这个握手是最先发生的事,早于任何请求行的写入。双方会就加密方式达成一致,服务器会出示其证书。只有在此之后,你熟悉的 HTTP 才会通过加密通道发送。

所以,端口要么使用 TLS 通信,要么不使用 TLS 通信。在纯 HTTP 端口请求 https://,不会有礼貌的回退处理:握手会立即失败,curl 会报告退出代码 35,即 SSL 连接错误。

这一点值得注意,因为服务器看起来像是宕机了,实际上它正通过只差一个协议的普通 HTTP 正常提供服务。

challenge icon

挑战

困难

向普通 HTTP 服务器请求 TLS,看看它如何拒绝。

  1. 用常见方式在端口 9129 上提供一个文件夹,也就是使用普通 HTTP
  2. 请求 https://127.0.0.1:9129/,并打印 tls=,后面跟上 curl 的退出代码

预期输出:

tls=35

35 是 curl 表示 SSL 连接错误的代码。

亲手试试

终端
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

使用终端进行网络通信中的所有课

自己练习: Terminal 在线编辑器