近期看http相關書,其中http方法中get和post的區別是乙個十分經典的題目,查閱相關資料之後,為了直觀,我將整理的資訊用**形式展現出來,便於比較~
~get
post
備註定義
從指定的資源uri請求資料
向指定資源uri提交被處理的資料
是否冪等是否
冪等是指一次和多次相同的操作 能得到相同的結果
請求資料
放在uri之後,用?進行分隔uri和資料,也就是說放在http協議頭中
吧提交的資料放在http包的包體中
備註1請求資料大小
有限制,1024位元組
理論上沒有限制
備註2安全性低高
備註3後退按鈕/重新整理
無害資料會被重新提交(瀏覽器應告知使用者資料會被重新提交)
書籤可收藏為書籤
不可收藏為書籤
快取能被快取
不能快取
編碼型別
歷史引數保留在瀏覽器歷史中
引數不會引數不會儲存在瀏覽器歷史中
對資料型別的限制
只允許ascii字元
沒有限制,允許二進位制資料
另外也提一下,post和put的區別:
兩者的主要區別是,post不是冪等的,put是冪等的。根據不同場景,兩者有不同的效果。
比如乙個部落格系統,如果發布名稱相同的部落格。
* 如果用post方法,則產生兩篇文章;
* 如果用put方法,則後面發布的文章則會覆蓋前一篇文章;
備註1:
get請求的url傳送資料格式為:
localhost/example.jsp?name1=value1&name2=value2
post請求的資料在http的訊息主體中,形式如下:
name1=value1&name2=value2備註2:
get方式有資料限制是以下原因:
因為get是通過url提交資料,那麼get可提交的資料量就跟url的長度有直接關係了。而實際上,url不存在引數上限的問題,http協議規範沒有對url長度進行限制。這個限制是特定的瀏覽器及伺服器對它的限制。ie對url長度的限制是2083位元組(2k+35)。對於其他瀏覽器,如netscape、firefox等,理論上沒有長度限制,其限制取決於作業系統的支援。
.理論上講,post是沒有大小限制的,http協議規範也沒有進行大小限制,說「post資料量存在80k/100k的大小限制」是不準確的,post資料是沒有限制的,起限制作用的是伺服器的處理程式的處理能力。
備註3:這裡安全的含義是真正的security的含義,比如:通過get提交資料,使用者名稱和密碼將明文出現在url上,因為(1)登入頁面有可能被瀏覽器快取,(2)其他人檢視瀏覽器的歷史紀錄,那麼別人就可以拿到你的賬號和密碼了,除此之外,使用get提交資料還可能會造成cross-site request forgery攻擊。
參考:w3c http方法:get與post比較
hyddd-**http中get與post的區別
HTTP中get和post區別
記得剛開始學習web技術的時候老師教我們的get和post區別是什麼 1.get用於獲取資料 post用於提交資料 2.get攜帶的資料大小比post少 3.get不安全 post安全 當開始找工作的時候面試官問我這倆的區別的時候我很自信的重複了之前老師講的區別 面試官問 除了get和post還有其...
Http中get和post請求
http定義了與伺服器互動的不同方法,最基本的方法有4種,分別是get,post,put,delete。url全稱是資源描述符,我們可以這樣認為 乙個url位址,它用於描述乙個網路上的資源,而http中的get,post,put,delete就對應著對這個資源的查,改,增,刪4個操作。到這裡,大家應...
http中get和post的區別
http定義了與伺服器互動的不同方法,最基本的方法有4種,分別是get,post,put,delete。url全稱是資源描述符,我們可以這樣認為 乙個url位址,它用於描述乙個網路上的資源,而http中的get,post,put,delete就對應著對這個資源的查,改,增,刪4個操作。到這裡,大家應...