如果是在网页之中利用PHP后端发起的请求,则需要在原本的URL编码之上进行二次URL编码
例如:gopher://12.1.1.1:80/_GET%20/index.html%20HTTP/1.1%0aHost:%2012.1.1.1%0aContent-Length:%202%0a
上面这种属于可以利用命令行CURL进行访问,如果你测试的是从前端发送Gopher协议则需要下面这种:
gopher://12.1.1.1:65535/_GET%2520/index.html%2520HTTP/1.1%250aHost:%252012.1.1.1%250aContent-Length:%25202%250a
原理是因为从前端传递数据到后端的CURL函数的时候,该参数已经被解码一次,所以会请求失败,而当我们使用两次URL编码,则可以在CURL函数发出去的时候的进行自动解码。这样我们的数据格式就完全正确了。
Gopher协议快速阅览:https://zhuanlan.zhihu.com/p/112055947
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容