[HTTP] GET & POST 的差別

HTTP/1.1 協定中定義了八種方法來操作資源,
包括  OPTIONS、HEAD、GET、POST、PUT、DELETE、TRACE、CONNECT

RESTful 的架構上可能會用到其中多種方法

不過最常用到的是用於提交表單的 GET & POST

<form action="test.php" method="POST">

GET

是用 Query String 把資料放在 URL 中傳遞
例如
https://www.facebook.com/profile.php?id=100001479530738&ref=tn_tnmn
就是在 profile.php 傳遞 $id = 100001479530738 這個變數
? 後面的就是傳遞的資料,常常會用 & 來串連不同的變數,如例子中的 id 跟 ref

– 用來獲取資源
– 用 GET 獲取資料是沒有副作用的,在過程中沒有造成資源改變
– 有大小限制,因為 URL 有長度限制
– 請求放在 URL 中所以不安全
– 必須用 ASCII 字碼的字串


POST

經過 CGI 處理,夾在 message-body 裡面送出,網址沒有變化

– 用來傳遞資源,有副作用
– 沒有大小限制
– 在沒被看到封包的情況下是安全的
– 可用所有 ISO 10646字碼

速度上 GET 比 POST 快
安全性 POST 比 GET 高
HTML form 的預設為 GET

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s