webservice接口開發(fā)教程 [PHP]$_GET和$_POST區(qū)別怎么用?
[PHP]$_GET和$_POST區(qū)別怎么用?get與post區(qū)別?發(fā)布和獲取都可以將數(shù)據(jù)提交到服務(wù)器并從服務(wù)器獲取數(shù)據(jù)。1. 傳輸方式:get通過地址欄傳輸,post通過消息傳輸。2. 傳輸長(zhǎng)度:g
[PHP]$_GET和$_POST區(qū)別怎么用?
get與post區(qū)別?
發(fā)布和獲取都可以將數(shù)據(jù)提交到服務(wù)器并從服務(wù)器獲取數(shù)據(jù)。
1. 傳輸方式:get通過地址欄傳輸,post通過消息傳輸。
2. 傳輸長(zhǎng)度:get參數(shù)有長(zhǎng)度限制(受URL長(zhǎng)度限制),post沒有限制
3。get和post之間還有一個(gè)重要的區(qū)別。簡(jiǎn)而言之,
get生成一個(gè)TCP包;post生成兩個(gè)TCP包
long,
對(duì)于get請(qǐng)求,瀏覽器將發(fā)送http for post,瀏覽器首先發(fā)送頭,服務(wù)器響應(yīng)100 continue,瀏覽器發(fā)送數(shù)據(jù),服務(wù)器響應(yīng)200 OK。
換句話說,get只需要一輛車就能送貨,而post則需要運(yùn)行兩次。第一次,去服務(wù)器說“嗨,我稍后會(huì)發(fā)一批貨,你開門來接我”,然后回去送貨。
因?yàn)閜ost需要兩個(gè)步驟,而且要花費(fèi)更多的時(shí)間,所以get似乎比post更有效。因此,雅虎團(tuán)隊(duì)建議將post替換為get來優(yōu)化網(wǎng)站性能。但這是個(gè)坑!小心地跳進(jìn)去。為什么?
1. Get和post有自己的語義,所以不能混淆。
2. 研究表明,在良好的網(wǎng)絡(luò)環(huán)境下,發(fā)送一個(gè)包和發(fā)送兩個(gè)包的時(shí)間差可以忽略不計(jì)。在網(wǎng)絡(luò)環(huán)境惡劣的情況下,雙包TCP在驗(yàn)證數(shù)據(jù)包完整性方面具有很大的優(yōu)勢(shì)。
3. 并非所有瀏覽器都會(huì)在post中發(fā)送兩次數(shù)據(jù)包,但在Firefox中只發(fā)送一次。
1. get模式的安全性比post模式差。如果包含機(jī)密信息,建議使用post數(shù)據(jù)提交模式;
2。在進(jìn)行數(shù)據(jù)查詢時(shí),建議使用get模式;在進(jìn)行數(shù)據(jù)添加、修改或刪除時(shí),建議使用post模式;
案例:一般情況下,在登錄時(shí),使用post傳輸,這涉及到密碼傳輸,但是在進(jìn)行頁面查詢時(shí),例如查詢文章ID的文章時(shí),使用“獲取地址”欄中的鏈接,如下所示:文章.php?id=11,用post查詢地址欄,鏈接為:文章.php,將不顯示傳輸?shù)臄?shù)據(jù)。