get 和 post 之间的区别
1、先不啰嗦直接列出来个表格,后面有具体的解释
get | post | |
---|---|---|
url地址栏 | 地址会显示 | 地址不会显示 |
url长度限制 | 会受限,每个浏览器的受限长度不一样 | (一般默认)不会受限制 |
传递方式 | get参数通过url传递 | post放在request body中 |
编码方式 | 只能进行url编码 | post支持多种编码方式 |
数据类型 | 必须为ASCLL | 无限制 |
缓存 | 可以缓存 | 不能被缓存 |
安全(加密过) | 不安全(请求参数都在地址上显示) | 安全 |
安全(未加密) | 不安全 | 不安全 |
2、自己的理解
2.1、url地址栏问题
顾名思义,就是上面的导航栏,get在发送请求的时候url地址会显示请求的地址及参数。而post则不会显示
2.2、url长度问题
在http中 get方法提交的数据大小长度并没有限制,HTTP协议规范没有对URL长度进行限制。这个限制是特定的浏览器及服务器对它的限制。而且每个浏览器限制的长度是不同的,具了解,IE浏览器是浏览器中最小的限制了,IE浏览器对URL的最大限制为2083个字符,所以一般不要超过2083就可以
2.3、传递方式
get请求参数是通过URL传递的,多个参数以&连接,而POST请求放在request body中。
2.4、安全
一般来说,post和get安全系数是一样的,比较强的人,会通过途径找到post请求的参数,所以我们需要对post请求加密,对于安全来说,post比get安全,get直接显示到地址栏
花开一千年,花落一千年,花叶永不见