1.应用场景
主要用于记录apipost遇到的坑, 以及为遇到的开发者提供参考. |
2.学习/操作
1.文档阅读
2.整理输出1. 背景交代使用PHP内置http server起了三个服务, 如下 php74 -S localhost:7400 -t . php74 -S localhost:8080 -t . php74 -S 127.0.0.1:7400 -t . 访问的url: // 正常如此 http://localhost:7400/ http://localhost:8080/ http://127.0.0.1:8079/ 2. 访问apipost 访问http://localhost:7400/ --- 不能访问 不论是localhost:7400 还是127.0.0.1:7400 均不可访问 http://localhost:8080/ --- 不能访问 不论是localhost:8080 还是127.0.0.1:8080 均不可访问 http://127.0.0.1:8079/ --- 可以访问, 不论是localhost:8079 还是127.0.0.1:8079 均可访问 chrome访问http://localhost:7400/ --- localhost:7400不能访问, 127.0.0.1:7400 可访问 http://localhost:8080/ --- localhost:8080不能访问, 127.0.0.1:8080 可访问 http://127.0.0.1:8079/ --- localhost:8079不能访问,127.0.0.1:8079 可访问 3. 分析问题
4. 解决问题chrome:
apipost: //供参考不要使用localhost来起http服务, 而是统一使用127.0.0.1 访问则localhost 或 127.0.0.1均可. 原因: 初步判断是apipost没有处理好安全浏览的特性[参见chrome相关], http 与 https之间的关系, 如果输入localhost 默认走https://localhost, 尽管控制台中显示请求走的是http://localhost, 我持怀疑态度, 从而导致连接一直失败. 后续测试证实判断 从而导致连接一直失败. 后续测试证实判断 chrome访问 但是有点奇怪的是127.0.0.1:8080 chrome也是不能访问. 原因tbd firefox也是如此. 查看chrome的dns缓存 使用curl也是如此, // 使用localhost启动服务, 就只能使用localhost进行访问, 有时甚至不能访问, 使用127.0.0.1访问, 则可以使用127.0.0.1 和 localhost访问. 后续补充 ... |
3.问题/补充
1. chrome解决 localhost 默认是https://localhost问题chrome://flags/#allow-insecure-localhost 不过如果手动输入https://localhost:7400/ 还是不能访问, 因为没有配置https 证书之类
firefox也是一样的道理, 只不过firefox默认没有启用Security feature 特性 [是否支持, 尚不清楚] |
后续补充
...