區別:1、GET只能發送有限數量的數據,POST沒有限制。 2.GET發送的資料不受保護,安全性低;而POST的安全性高。 3.GET查詢的結果可以加入書籤中,POST不行。 4.GET只接受ASCII字符,POST允許二進位和ASCII字符等。
本教學操作環境:windows7系統、PHP7.1版,DELL G3電腦
Get與Post的最主要差異就是Get是透過Url方式傳送數據,而Post並不讓用戶看到傳送的具體訊息,這個差異決定了兩者的用途。 Get方式主要用於搜索,而Post方式主要用於傳送使用者操作資訊至伺服器。
GET 和POST 方法的差異:
#1、發送的資料數量
在GET 中,只能發送有限數量的數據,因為數據是在URL 中發送的。
在 POST 中,可以發送大量的數據,因為數據是在正文主體中發送的。
2、安全性
GET 方法發送的資料不受保護,因為資料在 URL 欄中公開,這增加了漏洞和駭客攻擊的風險。
POST 方法發送的資料是安全的,因為資料未在 URL 欄中公開,也可以在其中使用多種編碼技術,這使其具有彈性。
GET是透過URL方式請求,可以直接看到,明文傳輸。
POST是透過請求header請求,可以開發者工具或是抓包可以看到,同樣也是明文的。
GET請求會儲存在瀏覽器歷史紀錄中,也可能會儲存在Web的日誌中。
get提交,請求的資料會跟在url(統一資源定位)後面,安全性低
post提交,把提交的資料放在http套件的包體中,安全性高
3、加入書籤中
GET 查詢的結果可以加入書籤中,因為它以URL 的形式存在;而POST 查詢的結果無法加入書籤。
4、編碼
在表單中使用 GET 方法時,在資料類型中只接受 ASCII 字元。
在表單提交時,POST 方法不綁定表單資料類型,並允許二進位和 ASCII 字元。
5、可變大小
GET 方法中的可變大小約為 2000 個字元。
POST 方法最多允許 8 Mb 的可變大小。
6、快取
GET 方法的資料是可快取的,而 POST 方法的資料是無法快取的。
7、主要作用
GET 方法主要用於取得資訊。而 POST 方法主要用於更新資料。
8、GET冪等,POST不冪等
冪等是指同一個請求方法執行多次和僅執行一次的效果完全相同。
依照RFC規範,PUT,DELETE和安全方法都是冪等的。雖說是規範,但服務端實作是否冪等是無法確保的。
引入冪等主要是為了處理同一個請求重複發送的情況,例如在請求回應前失去連接,如果方法是冪等的,就可以放心地重發一次請求。這也是瀏覽器在後退/刷新時遇到POST會給使用者提示的原因:POST語意不是冪等的,重複請求可能會帶來意想不到的後果。
例如在微博這個場景裡,GET的語意會被用在「看看我的Timeline上最新的20條微博」這樣的場景,而POST的語意會被用在「發微博、留言、按讚」這樣的場景。
推薦學習:《PHP影片教學》
以上是php的GET和POST方法的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!