最近在搞文件上传时遇见了一个玄幻的经历;就是post 请求突然变成了get请求!!
我的代码写的是post请求
然后postman发送的也是post请求
然后返回 返回竟然是 方法不允许!!!!我整个人懵了好久!!!
我开始思考是那个环节出了问题!!没思考个所以然车出来;于是我就进行了本地调试,将域名改为了localhost,一发入魂,本地测试通过了!!!
然后我将问题定位在了服务器上,我排查了nginx配置文件,也没问题!!! 于是我又重新看了下请求路径
zszxz.com/.............
额,突然福至心灵,随手加了个https
https://zszxz.com/.........
然后请求通过了;这个粗心的行为我思考了一下,原本是https请求,发送http的post 请求 到服务器后,服务器没有接收到https请求,而是http请求,接收过程中会把所有http的请求头都过滤了,然后就变成了get请求!!https 和 http 的不同之处还是很多,如果将https请求变成http请求,即使配置了请求头代理转发也是如此!
所以我总结了下2点情况下会发送这种情况
在做文件下载的时候也发下了玄幻的事情,知识追寻者搭了一个文件服务器,我服务器的图片放在在自己网站上时,http 竟然自动变成了https;我又被这个骚操作搞晕了!! 就是我开了三台浏览器一一验证,不帖图了!!
我 随手将自己的图片放在 其它网站上能够正常显示,然后将其它网站的http请求图片放在自己网站上也能正常显示!!
我开始思考是什么原因导致,谷歌,edge 将我的http 变为了 https !!!
我后来明确了一个思路,我文件服务器是二级域名,谷歌他们应该会根据主域名的https请求自动将我二级域名的http请求转为https ,所以最终我的二级域名还是不能用,除非我再买一个证书!!没钱了,不打算搞了,先白嫖下免费的github,giee 他们!! 哪天有收入了再玩!!