1. 程式人生 > >HTTP請求的GET與POST 方式的區別

HTTP請求的GET與POST 方式的區別

Http 定義了與伺服器互動的不同方法,最基本的方法有 4 種,分別是 GET,POST,PUT,DELETE。

URL 全稱是資源描述符,我們可以這樣認為:一個 URL 地址,它用於描述一個網路上的資源,而 HTTP 中的 GET,POST,PUT,DELETE 就對應著對這個資源的查,改,增,刪 4 個操作。

GET 一般用於獲取/查詢資源資訊,而 POST 一般用於更新資源資訊。

兩種請求方式的區別:

1.格式

GET 請求,請求的資料會附加在 URL 之後,以?分割 URL 和傳輸資料,多個引數用&連線。URL 的編碼格式採用的是 ASCII 編碼,而不是 unicode,即是說所有的非ASCII 字元都要編碼之後再傳輸。

POST 請求:POST 請求會把請求的資料放置在HTTP 請求包的包體中。因此,GET 請求的資料會暴露在位址列中,而 POST 請求則不會。

2.傳輸資料的大小

在 HTTP 規範中,沒有對 URL 的長度和傳輸的資料大小進行限制。但是在實際開發過程中,對於 GET,特定的瀏覽器和伺服器對 URL 的長度有限制。因此,在使用 GET 請求時,傳輸資料會受到 URL 長度的限制。

對於 POST,由於不是 URL 傳值,理論上是不會受限制的,但是實際上各個伺服器會規定對 POST提交資料大小進行限制,Apache、IIS 都有各自的配置。

3.安全性 POST 的安全性比 GET 的高。

這裡的安全是指真正的安全,而不同於上面GET 提到的安全方法中的安全,上面提到的安全僅僅是不修改伺服器的資料。

比如,在進行登入操作,通過 GET 請求,使用者名稱和密碼都會暴露再 URL 上,因為登入頁面有可能被瀏覽器快取以及其他人檢視瀏覽器的歷史記錄的原因,此時的使用者名稱和密碼就很容易被他人拿到了。除此之外,GET 請求提交的資料還可能會造成 Cross-siterequest frogery 攻擊