CGI中GET與POST的區別

GET與POST的區別在於:(對於CGI) 

如果以GET方式傳輸,所帶參數附加在CGI程式的URL後直接傳給server,並可從server端的QUERY_STRING這個環境變量中讀取; 

如果以POST方式傳輸,則參數會被打包在數據報中傳送給server,並可從CONTENT_LENGTH這個環境變量中讀取出來。 

還有一種情況是,你用的是GET方式,但傳送的參數是路徑,如: 

----< ahref="/cgi-bin/a.pl/usr/local/bin/pine" >CGI< /a > 

----這時所傳遞的參數"/usr/local/bin/pine"存放在PATH_INFO這個環境變量中。環境變量的讀取方式爲$str=$ENV{'QUERY_STRING'}; 



理論上說,GET是從服務器上請求數據,POST是發送數據到服務器。事實上,GET方法是把數據參數隊列(query string)加到一個URL上,值和表單是一一對應的。比如說,name=John。在隊列裏,值和表單用一個&符號分開,空格用+號替換,特殊的符號轉換成十六進制的代碼。因爲這一隊列在URL裏邊,這樣隊列的參數就能看得到,可以被記錄下來,或更改。通常GET方法還限制字符的大小。事實上POST方法可以沒有時間限制的傳遞數據到服務器,用戶在瀏覽器端是看不到這一過程的,所以POST方法比較適合用於發送一個保密的(比如信用卡號)或者比較大量的數據到服務器。 

Post是允許傳輸大量數據的方法,而Get方法會將所要傳輸的數據附在網址後面,然後一起送達服務器,因此傳送的數據量就會受到限制,但是執行效率卻比Post方法好。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章