首頁  >  文章  >  後端開發  >  php中get和post的差別是什麼?

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

青灯夜游
青灯夜游原創
2019-10-17 14:04:285325瀏覽

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

Get與Post最主要的差異就是Get是透過Url方式傳送數據,而Post並不讓用戶看到傳送的具體訊息,這個差異決定了兩者的用途。 Get方式主要用於搜索,而Post方式主要用於傳送使用者操作資訊至伺服器。以下是Get與Post詳細區別:

GET和POST的安全性

1、GET是透過URL方式請求,可以直接看到,明文傳輸。

2、POST是透過請求header請求,可以開發者工具或是抓包可以看到,同樣也是明文的。

3、GET請求會儲存在瀏覽器歷史紀錄中,也可能會儲存在Web的日誌中。

get提交,請求的資料會跟在url(統一資源定位)後面,安全性低

post提交,把提交的資料放在http套件的包體中,安全性高

GET和POST的資料大小

GET:特定瀏覽器和伺服器對URL長度有限制,例如IE對URL長度的限制是2083位元組( 2K 35)。對於其他瀏覽器,如Netscape、FireFox等,理論上沒有長度限制,其限制取決於作業系統的支援。 Get傳輸的資料量小,因為受URL長度限制,但效率較高;

POST:由於不是透過URL傳值,理論上資料不受限。 Post可以傳輸大量數據,所以上傳檔案時只能用Post方式;

傳輸資料字元格式不同

get限制Form表單的資料集的值必須為ASCII字符,無法透過request.setCharacterEncoding("utf-8");設定中文字符,伺服器得到的中文字符可能為亂碼!

post支援整個字元集ISO10646,可以透過request.setCharacterEncoding("utf-8");正確顯示中文字元。

伺服器端取得資料方式不同

Get在伺服器端$_GET;

Post在伺服器端$_POST

GET冪等,POST不冪等

冪等是指同一個請求方法執行多次和僅執行一次的效果完全相同。

1、依照RFC規範,PUT,DELETE和安全方法都是冪等的。雖說是規範,但服務端實作是否冪等是無法確保的。

2、引入冪等主要是為了處理同一個請求重複發送的情況,例如在請求回應前失去連接,如果方法是冪等的,就可以放心地重發一次請求。這也是瀏覽器在後退/刷新時遇到POST會給使用者提示的原因:POST語意不是冪等的,重複請求可能會帶來意想不到的後果。

3、例如在微博這個場景裡,GET的語意會被用在「看看我的Timeline上最新的20條微博」這樣的場景,而POST的語意會被用在「發微博、評論、按讚”這樣的場景中。

更多PHP相關知識,請造訪php中文網

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

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