原理性上的區別
http定義了與伺服器互動的不同方法,最基本的方法有4種,分別是get、post、put、delete。url全稱是資源描述符,我們可以這麼認為:乙個url位址,它用於描述網路上的乙個資源,而http的get、post、put、delete就對應著對這個資源的查
、改、增
、刪4個操作。所以get和post的第乙個區別:get一般用於獲取/查詢資源
資訊,post一般用於更新
資源資訊。
1、根據http規範,get用於資訊獲取,而且應該是安全和冪等的,安全和冪等的意思是:
(1)所謂安全意味著該操作用於獲取資訊而不是修改資訊,換句話說,get請求一般不應該產生***,也就是說,它僅僅是獲取資源資訊,就像資料庫查詢一樣,不會修改、增加資料,不影響資源的狀態
(2)所謂冪等意味著對同乙個url的多個請求應該返回相同的結果
比如乙個新聞**,讀者開啟乙個鏈結獲取新聞應該使用get實現
另外還有很重要的一點,從瀏覽器發起一次http請求:
1、一些靜態資源比如.css檔案、.js檔案是很少發生變化的,讓這些檔案放在瀏覽器快取裡面,請求的時候從瀏覽器快取裡面拿這些資源而不去伺服器上拿,可以有效地減輕服務端的壓力,加快瀏覽器的訪問速度
2、伺服器響應完可能將一些資源放到客戶端的瀏覽器快取中
而只有get方式才能從快取中存、取資源
,post方式則不可以。
事實說話:表象上的區別
說完原理性的區別,我們用事實說話,從表象上看一下get和post的區別,首先我寫乙個servlet:
}web.xml裡面的servlet配置就不放了,都會。
1、url請求的方式為get方式
。我從瀏覽器導航欄中輸入"http://localhost:8080/testweb/submitmethod",看一下列印結果:
enter getandpostservlet.doget()2、表單預設提交方式為get方式a =null
。我的jsp頁面為:
...控制台列印的內容為:...
enter getandpostservlet.doget()3、表單的action中?後面帶了引數,只有post方式可以取到。a =null
jsp頁面不變,先讓表單以get方式提交,執行結果為:
enter getandpostservlet.doget()如果我把表單提交方式改為post的:a =null
...後台列印的結果為:...
enter getandpostservlet.dopost()4、表單提交,get方式會把所有控制項值都帶在action後面,即使是password,也是明文形式的,post方式則不會a =1
。我把jsp修改一下:
...頁面上的表單這麼寫:...
點一下提交,導航欄裡面的url為"http://localhost:8080/testweb/submitmethod?name=aaa&password=bbbccc&***=0&hobby=0&hobby=1",看到即使是密文的密碼,在url裡面也變成了明文了,原有的"a=1"並不出現在url裡面。
把表單給成post的,點提交,導航欄裡面的url為"http://localhost:8080/testweb/submitmethod?a=1",action裡面怎麼樣還是怎麼樣。
從這個角度說,說post提交表單比get方式提交表單更安全
也是有道理的,因為get方式提交的資料,表單引數是在url中的,而post方式提交的資料,表單引數是在請求體中的,可以這麼證明這一點,f12檢視請求資訊,post方式提交的時候:
content-length即請求體,現在是46,checkbox我只選乙個的時候,content-length變成了35,而get方式提交資料則沒有content-length這個頭資訊,證明了post方式提交的表單引數存放在http body中。
get和post的區別
在b s應用程式中,前台與後台的資料互動,都是通過html中form表單完成的。form提供了兩種資料傳輸的方式 get和post。雖然它們都是資料的提交方式,但是在實際傳輸時確有很大的不同,並且可能會對資料產生嚴重的影響。雖然為了方便的得到變數值,web容器已經遮蔽了二者的一些差異,但是了解二者的...
post和get的區別?
1.get是從伺服器上獲取資料,post是向伺服器傳送資料。get 和 post只是一種傳遞資料的方式,get也可以把資料傳到伺服器,他們的本質都是傳送請求和接收結果。只是組織格式和資料量上面有差別,http協議裡面有介紹。2.get是把引數資料佇列加到提交表單的action屬性所指的url中,值和...
post和get的區別
兩者的主要區別在資料傳送方式和接收方式上 1 在客戶端 get方式是通過url提交資料 post方式是提交後位址列是不變的 2 在伺服器端 get方式是利用解析位址列字串的方式,伺服器獲取get提交的值 post方式是以form的形式提交表單引數 一般來說,盡量避免使用get方式提交表單,因為有可能...