POST是表單提交,GET是字符串提交
post是隱式地提交你的表單數(shù)據(jù)
get是顯示地提交你的表單數(shù)據(jù)所有數(shù)據(jù)都在url里會顯示出來
Post 與Get的真正區(qū)別是其作用上的不同,Post是被設(shè)計用來向上放東西的(就像其名字所暗示的那樣);而Get是被設(shè)計用來從服務(wù)器取東西的,它所以也能夠向服務(wù)器傳送較少的數(shù)據(jù),是以為當(dāng)你取東西時,你需要指明取什么,而我們有時候利用指明取什么的機制來向服務(wù)器放東西。
基于以上原因,Post與Get在http中傳送的方式是不同的,Get的參數(shù)是在http的頭部傳送的,而Post的數(shù)據(jù)則是在http請求的內(nèi)容里傳送的,一般來說,我們沒有看到這中間的差別,那是因為編程環(huán)境幫(如servlet)我們隱藏了其不同
GET方法將數(shù)據(jù)打包放置在環(huán)境變量QUERY_STRING中作為URL整體的一部分傳遞給服務(wù)器。 POST做很多類似GET同樣的事情, 不同的地方就是它是分離地傳遞數(shù)據(jù)給腳本. 你的腳本通過標(biāo)準(zhǔn)輸入獲取這些數(shù)據(jù). QUERY_STRING環(huán)境變量將不再設(shè)置.因此POST有更好的安全性,尤其如果你的表單中有很多數(shù)據(jù)的話. 當(dāng)你用GET, 這個服務(wù)器就分配變量QUERY_STRING給所有的表單數(shù)據(jù), 但是這個變量可存儲量是有限的. 換句話說,如果你有很多數(shù)據(jù)但是你又用GET,你會丟失很多數(shù)據(jù)。 如果你用POST, 你可以盡可能多地使用數(shù)據(jù), 因為這些數(shù)據(jù)從來也不分配到一個變量里。此外用post傳遞數(shù)據(jù)還有一個好處,它不會象get那樣把你傳送的數(shù)據(jù)暴露在瀏覽器的地址欄中,而且由于 HTTP/GET常見于Web鏈接,懷有惡意的人可能利用它實施欺騙,使別人在不知不覺中用自己的安全標(biāo)識調(diào)用Web服務(wù),卻還以為自己在點擊Web鏈接。比如象下面這種:form.php?name=genius&pwd=123456 ,明白了吧?所以還是用post讓人安心一點啦