get和post请求的区别

本文详细介绍了HTTP的常见请求方法,如GET、POST、PUT和DELETE。GET主要用于获取资源,其数据可见于URL,而POST用于提交数据,数据位于请求包体中。二者的主要区别在于URL形式、数据大小限制和安全性。POST比GET更安全,适合传输敏感信息。此外,还讨论了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方式就是被设计为查询用的。

参考文章:

原文链接:https://blog.csdn.net/weixin_44030860/article/details/122385253

先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦