小弟之前只會使用,但不知道他的傳送方式是怎麼一回事?所以找了一下資料來加強我的概念。以下先宣告一段簡單的Form的標籤
除了POST和GET的方法,還有其他的方式傳遞嗎?(下表是HTTP協定的八種方法)
What’s HTTP Method?
在HTTP1.1的版本中定義了八種方法,如下:
| |||
OPTIONS
|
GET
|
HEAD
|
POST
|
PUT
|
DELETE
|
TRACE
|
CONNECT
|
在PHP要取得資料的方法是$_POST、$_GET,突然在我的腦海裡浮現一個$_REQUEST的文字,原來這個$_REQUEST的功能是擁有($_POST、$_GET)的功能,在PHP5.2之前也包含了$_COOKIE 和 $_SERVER,但基於安全性考量,並不適合用來實作。像其他程式語言跟$_REQUEST一樣的功能,如:JAVA使用getParameter()、ASP使用Request.Form()...等等。
解釋GET和POST的分別:
如果 HTTP 代表現在我們現實生活中寄信的機制:
信封的撰寫格式就是 HTTP
信封外的內容稱為 http-header
信封內的書信稱為 message-body
HTTP Method 就是你要告訴郵差的寄信規則
所以說GET是把資料放在header進行傳送,所以在網址列上看到"http://www.AAA.com/?password=1234",browser會把表單內容轉換成Query String放在URL進行連線,但這一種方式,並不適合傳送隱密性的資料。因為資料傳送突中是直接顯示在網址列上,所以是直接性的看到。
而POST是放在body進行傳送,也就是封包內,在傳送中也會使用multi-part編碼,將檔案與表單內容一起放在body裡來傳遞,乍看起來會比GET安全一些,但也不是保證非常安全。
沒有留言:
張貼留言