首頁 >後端開發 >PHP問題 >php中post和get的差別是什麼?

php中post和get的差別是什麼?

烟雨青岚
烟雨青岚原創
2020-06-22 17:28:233284瀏覽

php中post和get的差別是什麼?

php中post和get的差別是什麼?

php 基礎知識post 和get 兩種傳輸方式的差異

1.post比較安全(不會作為url的一部分,不會被快取、保存在伺服器日誌、以及瀏覽器瀏覽記錄中)

2.post發送的資料量更大(get有url長度限制)

3.post能發送更多的資料型別(get只能傳送ASCII字元)

4.post是傳送資料到伺服器資料,get是從伺服器取得資料;

5.get會將資料快取起來,而post不會

post請求的過程:

1.瀏覽器請求tcp連線(第一次握手)

2.伺服器答應進行tcp連線(第二次握手)

3.瀏覽器確認,並發送post請求頭(第三次握手,這個報文比較小,所以http會在此時進行第一次資料傳送)

4.伺服器回傳100 continue回應

5.瀏覽器開始傳送資料

6.伺服器回傳200 ok回應

get請求的程序

1.瀏覽器請求tcp連線(第一次握手)

#2.伺服器答應進行tcp連線(第二次握手)

3.瀏覽器確認,並發送get請求頭和資料(第三次握手,這個報文比較小,所以http會在此時進行第一次資料發送)

4.伺服器回傳200 ok響應。

get表達的是一種冪等的,只讀的,純粹的操作,即它除了返回結果不應該會產生其它副作用(如寫數據庫),因此絕大部分get請求(通常超過90%)都直接被CDN快取了,能大大減少web伺服器的負擔。
而post所表達的語意是非冪等的,有副作用的操作,所以必須交由web伺服器處理。
把所有get請求換成post,意味著主幹網路上的所有CDN都廢掉了,web伺服器要處理的請求數量將成百上千倍地增加,顯然這不是一個聰明的做法!

推薦教學:《php教學

以上是php中post和get的差別是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn