GET與POST

GET也能拿來存取資料嗎

可以,但是請不要做這種事情。
使用GET的時候,我們通常會以query的方式帶參數到後端:

1
"https://www.ex.com/page?q=test"

因為參數帶到後端了,所以再來就看後端怎麼拿那些參數表演了。
瀏覽器也會限制GET的query長度,甚至會紀錄傳遞過的參數。
GET不適合帶機敏性資料,只允許使用ASCII。

1
2
3
4
5
6
7
8
9
10
GET /?id=xxxxx&password=xxxxx HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.9.2.13)
Gecko/20101203 Firefox/3.6.13 GTB7.1 ( .NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-tw,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: UTF-8,*
Keep-Alive: 115
Connection: keep-alive

POST

不能說是很安全的,因為還是可以查看封包內的body
傳遞的參數不會被瀏覽器紀錄

1
2
3
4
5
6
7
8
9
10
11
12
13
14
POST / HTTP/1.1
Host: xxx.toright.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.9.2.13)
Gecko/20101203 Firefox/3.6.13 GTB7.1 ( .NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-tw,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: UTF-8,*
Keep-Alive: 115
Connection: keep-alive

Content-Type: application/x-www-form-urlencoded
</code><code>Content-Length: 9
id=xxxxx&password=xxxxx

Comment