在你自己的机器上跑一个服务器,并弄明白为什么别人都看不到它。
在 Kodokon 中打开本课开发一个网站的时候,你不可能每改一次就把它发布到互联网上。你会在自己的电脑上跑一个服务器,然后用浏览器去访问它。你这台机器有一个专用的名字:localhost,字面意思就是“本地主机”。它还有一个保留的 IP 地址 127.0.0.1,在世界上任何一台机器上,它的含义都是“我自己”。
但一台电脑可以同时跑好几个服务器。怎么知道你在跟哪一个说话呢?靠端口。如果说 IP 地址是整栋楼的地址,那端口就是房间号:一个 1 到 65535 之间的数字,用来指明该由哪个程序来回应。有些端口是约定俗成的:80 端口给 http,443 给 https。开发的时候常用 3000、5173 或者 8000。端口写在名字后面,中间用冒号隔开:http://localhost:8000。
cd my-site
python3 -m http.server 8000
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...让这个终端窗口一直开着:只要命令还在运行,服务器就会响应。现在在浏览器里打开 http://localhost:8000,你就会看到 my-site 文件夹里的文件。要停掉服务器,回到终端按 Ctrl + C。
既然双击 index.html 也能打开页面,为什么还要这么麻烦?因为双击打开文件用的地址是 file:///C:/Users/...,而不是 http://。而网页的好几项功能,一旦离开 http 协议就干脆罢工:向服务器发请求、JavaScript 模块、某些字体。你会遇到一堆莫名其妙的错误,而只要改走 localhost,它们就像变魔术一样全消失了。
lsof -i :8000
COMMAND PID USER FD TYPE NODE NAME
python3 4821 sarah 3u IPv4 TCP *:8000 (LISTEN)mkdir site
cd site
python3 -m http.server 8000