GET和POST區別HTTP網絡協議GET

網絡與協議(1) 

版權聲明:本文爲博主原創文章,未經博主允許不得轉載。

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

HTTP包頭

明文

不安全

長度較小

查詢數據

POST

HTTP正文

可明可密

安全

支持較大數據傳輸

修改數據

發佈了52 篇原創文章 · 獲贊 26 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章