有幾種方法可以做到這一點,依靠您可以訪問接收請求的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