CGI:当客户端只能使用URL字符串时,使用GET而不是POST
||
我的情况是我有一个POST cgi脚本,该脚本生成并返回一个媒体文件(mp3)。此脚本的客户端之一希望使用iOS媒体播放器(MPMoviePlayer)对象,该对象仅将NSURL(基本上是URL字符串)作为输入。问题在于,在iOS上,仅使用NSURL不能发送POST参数。
iOS当然可以使用其他对象(NSURLRequest)来发布请求,但是脚本需要花费一些时间才能运行,因此无法运行请求,将文件保存到磁盘然后将文件传递给媒体播放器对象。
起初我以为也许我们应该改用GET,尽管它不是很好的RESTful设计,但只要设置了robots.txt,它就不会那么糟糕。但是我在SO上发现了一个类似的问题,明确地认为,如果您要使用cgi脚本更改服务器状态,则GET是一个坏主意,即使这样做会使访问更容易:
使用GET而不是POST删除经过身份验证的页面后面的数据
除了重写媒体播放器对象之外,我看不出一种简单的方法。
谁能在仍然使用基于url的播放器的情况下建议将脚本更改为GET的替代方法?
使用GET最可怕的事情不是安全/恶意黑客,因为这些问题中的大多数也会影响POST。我主要担心的是搜索引擎robots / etc中的新\ fixes \会忽略robots.txt。还有别的事吗?
另外,如果有理由为什么这里可以接受GET,那么我也将对该答案感兴趣。我想知道搜索引擎/机器人问题在这里是否没有问题,因为我们没有一个http表单可以在任何地方提交GET请求(因为iOS应用程序将在应用程序内部执行该请求),而cgi脚本却没有定义与之一起使用的请求方法(尽管他们可以检测到并中止)。
没有找到相关结果
已邀请:
4 个回复
恋卡
在
标签中完成此操作,但没有等同于指定可以/应该预取
标签)的方法,而不是默认的\“预取一切行为。一个相关的问题是,代理也可能会进行预取(例如,办公室网络的Squid或像Opera Mini这样的移动浏览器,它们使用代理来获取和重新压缩图像),但是我不知道目前正在执行的任何操作。因此,我认为您在这方面没有真正要担心的事情,但是如果您对此抱有偏执,那么解决方法是遵循规则,并在修改服务器状态时仅使用POST。
死搭胯
葛瞎说漓
臂哦