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中get和post的區別有哪些大概了解了嗎?希望文章內容對大家有所幫助。如果想了解更多相關文章內容,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。