在html的form表单里,get和post都是向服务器发送请求,但是他们有很多的不同。
1.虽然他们都是请求,都是他们的请求是通过两种不同的路径,get是通过url,即在url后面加入“?”,在问号后面填入请求的参数,多个参数以“&”来隔开,但是post是通过在HTTP Request的body中发送请求。
2.正是由于通过不同的路径发送了请求,所以来取得变量的值或者访问提交的内容也是通过不同的方法。get是通过Request.QueryString来取得变量的值,而post是通过Request.Form来访问提交的内容。
3.由于get是通过url来请求的,所以传输的内容都暴露在url中,安全性极差,而post传送数据是通过HTTP post机制,将数据放到http header那里然后传输。但是本质上来讲,post和get传输的数据都没有经过加密,只是post传输的数据不容易被拿到。不过get的数据能够被浏览器缓存而post的数据一刷新就没有了。
4.除此以外,get所提交的内容非常少,只有2kb,而post所提交的内容一般可以达到80到100kb,甚至通过设置使得传输的内容超过这个值。get它传输的数据集的值必须为ASCII码,而post它传输的数据集的值则是整个ISO10646。
5.最后最大的区别就是get是用来从服务器上获得数据,而post是用来向服务器上传递数据。在表单里,method的默认值就是get。