Post和Get的区别
get 是从服务器上获取数据,post 是向服务器传送数据
get 是把参数数据队列加到提交表单的action属性所指的URL中,在URL中可以看到。
post 是通过HTTP post机制,用户看不到这个过程 。
GET方法
GET是获取的意思,顾名思义就是获取信息。
GET是默认的HTTP请求方法。
GET方法把参数通过key value形式存放在URL里面,所以GET方法的参数长度不能太长;如果参数是英文数字原样显示,如果是中文或者其他字符加密(Base64)URL长度一般有限制;由于参数显示再地址栏所以不安全,一般需要保密的请求不使用GET。
POST方法
POST是邮件的意思,顾名思义就像一封信一样将参数放在信封里面传输。它用于修改服务器上的数据,一般这些数据是应该保密的,就像信件一样,信的内容只能收信的人看见。例入当用户输入账号和密码登录时账号和密码作为参数通过HTTP请求传输到服务器,这时候肯定不能用GET方法将账号密码直接显示再URL上,这时候就应该用POST方法保证数据的保密性。
POST和GET的区别
-
GET提交的数据放在URL中,POST则不会。这是最显而易见的差别,这点意味着GET更不安全(POST也不安全,因为HTTP是明文传输抓包就能获取数据内容,要想安全还得加密)
-
GET回退浏览器无害,POST会再次提交请求(GET方法回退后浏览器再缓存中拿结果,POST每次都会创建新资源)
-
GET提交的数据大小有限制(是因为浏览器对URL的长度有限制,GET本身没有限制),POST没有
-
GET可以被保存为书签,POST不可以。这一点也能感受到。
-
GET能被缓存,POST不能
-
GET只允许ASCII字符,POST没有限制
-
GET会保存再浏览器历史记录中,POST不会。这点也能感受到。
总之,两者之间没有本质区别,区别就在于数据存储的位置。各自有适用环境,根据需求选择合适的方法即可。
其实这个是大众版,真正的我自己用心揣摩过的总结在这里==看这篇的延伸原理》,这篇从HTTP捎带的讲了许多东西