做web開發就一定會涉及到瀏覽器和伺服器的互動,所以了解瀏覽器和伺服器互動的方式就尤為重要。從接觸b/s開始就已經接觸到了get和post,但是對它們的了解確實不深入。在後來不斷的做專案過程中,對它們不斷接觸中發現,以前的了解真的是太淺了。本篇部落格就**一下,get和post的區別。
說道get和post,就不得不提http協議,因為瀏覽器和伺服器的互動是通過http協議執行的,而get和post也是http協議中的兩種方法。
http全稱為hyper text transfer protocol,中文翻譯為超文字傳輸協議,目的是保證瀏覽器與伺服器之間的通訊。http的工作方式是客戶端與伺服器之間的請求-應答協議。
http協議中定義了瀏覽器和伺服器進行互動的不同方法,基本方法有4種,分別是get,post,put,delete。這四種方法可以理解為,對伺服器資源的查,改,增,刪。
get:從伺服器上獲取資料,也就是所謂的查,僅僅是獲取伺服器資源,不進行修改。
post:向伺服器提交資料,這就涉及到了資料的更新,也就是更改伺服器的資料。
put:put的英文含義是放置,也就是向伺服器新新增資料,就是所謂的增。
delete:從字面意思也能看出,這種方式就是刪除伺服器資料的過程。
1、get互動方式是從伺服器上獲取資料,而並非修改資料,所以get互動方式是安全的。就像資料庫查詢一樣,從資料庫查詢資料,並不會影響資料庫的資料資訊,對資料庫來說,也就是安全的。
2、get互動方式是冪等的,冪等是乙個數學概念,冪等函式就是可以使用相同引數重複執行,並且能獲得相同結果的函式。在get互動這裡就是,對同乙個url的多個請求,得到的結果是相同的。就像資料庫查詢,不同的資料庫連線對同乙個資料庫錶用相同條件查詢時,得到的結果也是一樣的。
1、post互動是可以修改伺服器資料的一種方式,涉及到資訊的修改,就會有安全問題。就像資料庫的更新,update乙個資料庫表時,如果條件沒有寫對,就可能把不需要修改的資料給修改了,得到的資料就是錯誤的了。
2、一般的post互動是必須要用到表單的,但是表單提交的預設方法是get,如果改為post方式,就需要修改表單提交時的method。
get方式:
1、get方式是以實體的方式得到由請求url所指定資源的資訊,如果請求url只是乙個資料產生過程,那麼最終要在響應實體中返回的是處理過程的結果所指向的資源,而不是處理過程的描述。也就是說,get的到的資訊是資源,而不是資源的處理過程。
2、請的求的資料會附加在url之後,以?分隔url和傳輸資料,多個引數用&連線。url編碼格式採用的是ascii編碼,而不是unicode,即所有的非ascii字元都要編碼之後再傳輸。
3、因為url的長度限制,get方式傳輸的資料大小有所限制,傳送的資料量不超過2kb。
4、get方式伺服器端用request.querystring獲取變數的值。
5、get方式傳輸的引數安全性低,因為傳輸的資料會顯示在請求的url中。
post方式:
1、用來向目的伺服器發出請求,要求它接收被附在請求後的實體,並把它當做請求佇列中請求url所指定資源的附加新子項。
2、post方式將表單內各個欄位和內容放置在html header中一起傳送到action屬性所指定的url位址,使用者是看不到這個過程的。
3、post方式傳送的資料量比較大,一般被預設為沒有限制,但是根據iis的配置,傳輸量也是不同的。
4、post方式在伺服器端用request.form獲取提交的資料。
5、post方式傳輸的資料安全性較高,因為資料傳輸不是明顯顯示的。
post和get方式的安全性是相對的,另外也要看是從哪個角度來看的。從資料傳輸過程方面來看,post方式是更加安全的,但是從對伺服器資料的操作來看,post方式的安全性又是比較低的。即使是傳輸過程用post來執行,安全性也是相對的,如果了解http協議漏洞,通過攔截傳送的資料報,同樣可以修改互動資料,所以這裡的安全不是絕對的。
Http中get和post請求
http定義了與伺服器互動的不同方法,最基本的方法有4種,分別是get,post,put,delete。url全稱是資源描述符,我們可以這樣認為 乙個url位址,它用於描述乙個網路上的資源,而http中的get,post,put,delete就對應著對這個資源的查,改,增,刪4個操作。到這裡,大家應...
HTTP中GET和POST請求區別
1 get是從伺服器上 獲取資料,post是向伺服器傳送資料。1 在客戶端,get方式在通過 url提交資料,資料 在url中 可以看到 post方式,資料放置在 html header內 提交。2 對於get方式,伺服器端用request.querystring獲取變數的值,對於post方式,伺服...
HTTP請求中get和post區別
1 get請求,請求的資料會附加在url之後,以?分割url和傳輸資料,多個引數用 連線。url的編碼格式採用的是ascii編碼,而不是uniclde,即是說所有的非ascii字元都要編碼之後再傳輸。2 get提交有資料大小的限制,一般是不超過1024個位元組,而這種說法也不完全準確,http協議並...