get和post的使用場景

原文鏈接:https://blog.csdn.net/shuidinaozhongyan/article/details/72597794

GET和POST兩種方法都是將數據送到服務器。HTTP標準包含這兩種方法是爲了達到不同的目的。

POST用於創建資源,資源的內容會被編入HTTP請示的內容中。例如,處理訂貨表單、在數據庫中加入新數據行等。

當請求無副作用時(如進行搜索),便可使用GET方法;當請求有副作用時(如添加數據行),則用POST方法。一個比較實際的問題是:GET方法可能會產生很長的URL,或許會超過某些瀏覽器與服務器對URL長度的限制。

若符合下列任一情況,則用POST方法:

* 請求的結果有持續性的副作用,例如,數據庫內添加新的數據行。
* 若使用GET方法,則表單上收集的數據可能讓URL過長。
* 要傳送的數據不是採用7位的ASCII編碼。

若符合下列任一情況,則用GET方法:

* 請求是爲了查找資源,HTML表單數據僅用來幫助搜索。
* 請求結果無持續性的副作用。

* 收集的數據及HTML表單內的輸入字段名稱的總長不超過1024個字符。

HTTP 定義了與服務器交互的不同方法,最常用的有4種,Get、Post、Put、Delete,如果我換一下順序就好記了,Put(增),Delete(刪),Post(改),Get(查),即增刪改查,下面簡單敘述一下:

 

1)Get, 它用於獲取信息,注意,他只是獲取、查詢數據,也就是說它不會修改服務器上的數據,從這點來講,它是數據安全的,而稍後會提到的Post它是可以修改數據的,所以這也是兩者差別之一了。

2) Post,它是可以向服務器發送修改請求,從而修改服務器的,比方說,我們要在論壇上回貼、在博客上評論,這就要用到Post了,當然它也是可以僅僅獲取數據的。

3)Delete 刪除數據。可以通過Get/Post來實現。用的不多,暫不多寫,以後擴充。

4)Put,增加、放置數據,可以通過Get/Post來實現。用的不多,暫不多寫,以後擴充。

 

下面簡述一下Get和Post區別:

1) GET請求的數據是放在HTTP包頭中的,也就是URL之後,通常是像下面這樣定義格式的,(而Post是把提交的數據放在HTTP正文中的)。

login.action?name=hyddd&password=idontknow&verify=%E4%BD%E5%A5%BD

a,以 ? 來分隔URL和數據; 

b,以& 來分隔參數;

c,如果數據是英文或數字,原樣發送;

d,如果數據是中文或其它字符,則進行BASE64編碼。  

2)GET提交的數據比較少,最多1024B,因爲GET數據是附在URL之後的,而URL則會受到不同環境的限制的,比如說IE對其限制爲2K+35,而POST可以傳送更多的數據(理論上是沒有限制的,但一般也會受不同的環境,如瀏覽器、操作系統、服務器處理能力等限制,IIS4可支持80KB,IIS5可支持100KB)。

3)Post的安全性要比Get高,因爲Get時,參數數據是明文傳輸的,而且使用GET的話,還可能造成Cross-site request forgery攻擊。而POST數據則可以加密的,但GET的速度可能會快些。

所以綜上幾點,總結成下表:

總的來說,get是用來查詢數據,post是用來修改數據。比方說,我們要在論壇上回貼、在博客上評論,這就要用到Post了,當然它也是可以僅僅獲取數據的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章