get和post请求的区别
get和post请求的区别
常用http请求方法用途
get
发送一个请求常用来获取服务器资源。
post
向URL指定的资源提交数据或附加新的数据。
put
跟POST方法很像,也是像服务器提交数据进行处理请求。但是,它们之间有不同。PUT指定了资源在服务器上的位置,而POST没有。一般用于修改资源。
delete
请求服务器删除指定的资源。
最常见的就是post与get方法,下面详细介绍一下二者的区别
1、URL形式
get将表单中数据按照name=value的形式,添加到action 所指向的URL 后面,并且两者使用””连接,而各个变量之间使用”&”连接
post请求:post请求会把请求的数据放置在HTTP请求包的包体中,传递到action所指向URL。上面的item=bandsaw就是实际的传输数据。
因此,get请求的数据会暴露在地址栏中,而POST请求则不会。
get请求用来从服务器上获得资源,而post是用来向服务器提交数据;
2、传输数据的大小
在HTTP规范中,没有对URL的长度和传输的数据大小进行限制。但是在实际开发过程中,对于get,特定的浏览器和服务器对URL的长度有限制。因此,在使用get请求时,传输数据会受到URL长度的限制。
对于post,由于不是URL传值,理论上是不会受限制的,上传文件通常要使用post方式;但是实际上各个服务器会规定对POST提交数据大小进行限制,Apache、IIS都有各自的配置。
3、安全性
post的安全性比get的高。这里的安全是指真正的安全,而不同于上面get提到的安全方法中的安全,上面提到的安全仅仅是不修改服务器的数据。比如,在进行登录操作,通过get请求,用户名和密码都会暴露再URL上,因为登录页面有可能被浏览器缓存以及其他人查看浏览器的历史记录的原因,此时的用户名和密码就很容易被他人拿到了。除此之外,get请求提交的数据还可能会造成Cross-site request frogery攻击。
如果这些数据不是敏感数据,那么可以使用get;对于敏感数据还是应用使用post;
注意:GET方式提交表单的典型应用是搜索引擎。GET方式就是被设计为查询用的。
还没有留言,还不快点抢沙发?