get请求和post请求的区别:
1、get请求可以在浏览器中请求到,post请求的测试需要借助工具
2、get请求使用url和cookie传参,post的数据放在body中
3、post比get安全,因为传递的参数在url上是看不到的
4、get请求的url会有限制,而post请求的数据可以非常大
5、一般get请求是来获取数据,post请求是传递数据的
其实,对于现在飞速发展的互联网来说,上面的说法已经成为传统。首先,post请求的参数也可以写在url里,但是这种情况不多见;其次,表面上看起来,post利用body传参,比get的url传输安全,但其实只要用抓包工具(fiddler,Charles等),post的参数也是一览无余;再次,现在的浏览器非常强大,可以输入支持很长的url,所以也不再有限制一说了。所以,种种区别最后只有最后一条是最根本的区别。即一个用来获取数据,一个用来传递数据。
Get获取资源
get方法用来获取请求已经被URI识别的资源
指定的资源经服务器端解析后返回响应内容(也就是说,如果请求的资源是文本,那就保持原样返回,如果是CG【通用网关接口】那样的程序,则返回经过执行后的输出结果
最常用向服务器查询某些信息,必要时,可以将查询字符串参数追加到URL末尾,以便于将信息发送到服务器
使用get请求时经常发生的一个错误,就是查询字符串的格式有问题,查询字符串中每个参数的名称和值都是必须使用encodeURLComponent()进行编码,然后才能放到URL的末尾,而且所有的名-值对都必须有(&)分离
Post传输实体文本
post用来传输实体的主体,但一般不用get方法进行传输,而是用post方法,虽然get方法和post方法很相似,但是post的主要目的并不是获取相应的主体内容
post请求的主体可以包含非常多的数据,而且格式不限
默认情况下,服务器对于post请求和提交web表单的请求并不会一视同仁
post和get本质上的区别
get方法用于信息的获取,它是安全的(安全指非修改信息,如数据库方面的信息),而post发法是用来修改服务器上资源的请求
get请求会附在URL后面,而post方法是提交的数据则放置在HTTP保温实体的主体里,所以post方法的安全性比get方法要高
get方法传输的数据量一般限制在2KB,其原因在于get是通过URL提交数据的,而URL本身对于数据没有限制,但是不同的浏览器对于URL室友限制的,比如IE浏览器对于URL的限制是2KB,而Chrome、Firefox的浏览器理论上对于URL是没有限制的,它真正的限制取决于操作系统本身,post方法对于数据大小是无限制的,真正影响到数据大小的是服务器处理程序的能力