有几种方法可以做到这一点,依靠您可以访问接收请求的CGI的事实。
最好的选择是发送您的data
作为POST
而不是GET
。如果你出于某种原因无法做到这一点,你可以尝试用某种压缩方式发送你的数据并在CGI上解压。
如果通讯发生在两台服务器之间,第一台服务器可以将data
保存到一个文件中,并将文件名发送到第二台服务器,这样CGI检索这个文件而不是从URL中读取数据。
你能够适应CGI接收数据分割成块,分割数据和标记与其他一些变量中的每个要求,如function=doitnow&data=bytes&chunk=1&total=2&id=somekey
,function=doitnow&data=more-data&chunk=2&total=2&id=somekey
因为我真的不使用Python太多了,我不t知道如何处理POST或GET值,如果是这种情况,下面是将POST和GET值传递给php脚本的包装:
#!/bin/sh
echo "Content-Type: text/html;"
echo
echo
#POST=`dd count=$CONTENT_LENGTH bs=1 2> /dev/null`
POST=`dd bs=1 2> /dev/null`
php -f 'dosomething.php' -- "$POST" "$QUERY_STRING"
POST方法没有什么内在的要求所有参数数据将位于请求的主体中而不是查询字符串中。浏览器将使用表单字段值来做到这一点,是的。而且你经常会发布只能在正文中使用的文件。但这不是真的,“如果URL中有数据,它不是POST请求。” – 2009-11-12 03:15:28
@Sixten:在这种情况下,这是一个安全的赌注,而且看起来我是对的。虽然,采取了点。 :) – 2009-11-12 03:19:39