[後臺技術]Post/Get

Duancf發表於2024-07-05

GET

post get不同之處

GET方法用於從Web伺服器請求資料。

在使用GET方法時,瀏覽器向Web伺服器傳送一個請求,Web伺服器將響應資料傳送回瀏覽器。

GET方法是無狀態的,也就是說每個請求都是獨立的,沒有前後關係。GET方法通常用於請求靜態資料,如HTML頁面、圖片和CSS檔案等。

POST方法用於向Web伺服器提交資料。

在使用POST方法時,瀏覽器將資料打包併傳送到Web伺服器。

Web伺服器收到資料後,可以根據資料執行相應的操作,並向瀏覽器傳送響應。

POST方法是有狀態的,也就是說請求和響應之間存在關係,請求和響應之間的資料可以互相傳遞。

POST方法通常用於向Web伺服器提交表單資料和上傳檔案等操作。

1.資料傳輸方式不同

GET方法的資料傳輸是透過URL傳遞的,而POST方法的資料傳輸是透過HTTP請求體傳遞的。在使用GET方法時,瀏覽器將請求的引數附加到URL的末尾,以“?”號開始,並用“&”符號將多個引數連線在一起。例如,以下是使用GET方法請求的示例:

http://example.com/page?name=value&age=value

在使用POST方法時,瀏覽器將請求的資料打包並放置在HTTP請求體中。請求頭中會包含請求體的大小等資訊。以下是使用POST方法請求的示例:

POST /page HTTP/1.1
Host: example.com Content-Type: application/x-www-form-urlencoded Content-Length: 20
name=value&age=value

2.資料大小限制不同

GET方法將資料附加到URL中,因此資料大小有限制。在URL中,只能傳遞ASCII字元,並且URL的長度有限制。不同的瀏覽器和Web伺服器對URL長度的限制不同,但通常在2KB到8KB之間。因此,使用GET方法傳輸大量資料可能會導致URL過長,從而影響請求的效能。

POST方法將資料放在HTTP請求體中,因此資料大小不受限制。但是,Web伺服器和Web應用程式可能會對POST請求的大小進行限制。這是為了避免網路擁塞和伺服器過載等問題。通常,Web伺服器和Web應用程式對POST請求的大小限制在1MB到2MB之間。

3.安全性不同

GET方法的引數是透過URL傳遞的,因此可以很容易地在瀏覽器位址列中看到。如果引數包含敏感資訊,例如使用者名稱和密碼等,這將是一個安全風險。因此,GET方法不適合傳遞敏感資料。

POST方法將資料放在HTTP請求體中,因此相對於GET方法更加安全。因為POST方法的請求體不會在瀏覽器位址列中顯示,所以敏感資訊不會暴露在URL中。但是,POST方法的請求體可能會被截獲並讀取,所以如果資料是敏感的,還需要採取其他安全措施。

4.快取機制不同

GET方法具有快取機制。如果瀏覽器請求的資源已經在本地快取中存在,瀏覽器將使用快取而不是向伺服器傳送請求。這可以提高Web應用程式的效能。但是,如果應用程式的資料頻繁變化,使用GET方法可能會導致瀏覽器快取過期,從而影響效能。

POST方法沒有快取機制。每次使用POST方法傳送請求時,瀏覽器都會向Web伺服器傳送請求,Web伺服器也會重新處理請求。因此,POST方法的效能相對於GET方法較低。

5.冪等性不同

在電腦科學中,冪等性是指對同一操作執行多次所產生的影響是相同的。在HTTP協議中,GET方法是冪等的,也就是說對同一URL執行多次GET請求,伺服器的響應是相同的。因為GET方法只用於獲取資源,不對伺服器端的資源做任何改變。

而POST方法不是冪等的,也就是說對同一URL執行多次POST請求,伺服器的響應可能會不同。因為POST方法會對伺服器端的資源進行改變,如果多次執行相同的POST請求,可能會導致伺服器的狀態發生變化。

GET和POST的應用

GET和POST方法在Web應用程式中都有廣泛的應用。

通常,GET方法用於獲取靜態資料,而POST方法用於提交資料或執行操作。

在Web應用程式中,GET方法常用於以下場景:

  • 獲取HTML頁面、CSS檔案、JavaScript檔案和圖片等靜態資源。
  • 透過URL傳遞引數,例如在搜尋引擎中搜尋關鍵字。
  • 獲取Web服務的後設資料,例如Web服務的URL和支援的方法等。
  • 獲取資料,例如從API中獲取JSON資料。

在Web應用程式中,POST方法常用於以下場景:

  • 提交表單資料,例如登錄檔單和登入表單等。
  • 上傳檔案,例如上傳圖片和影片等。
  • 執行操作,例如更新或刪除資料。