欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

HTTP中Get和Post的区别

程序员文章站 2022-05-09 10:06:59
...
                          **get和post的区别***斜体样式*

对于一般请求数据来说,有很多种方法,但最常用的还是get,post,还有input,delete;input和delete这两个还是有用的没有get,post的多,其实对于get和post都是针对于http协议或者https协议来说的,这俩这之间的区别一方面可以从安全性来说,https是http协议缺陷的发展,超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
首先从http说起;http:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全;这里面可以从get和post说起,GET和POST的区别可以归结为两方面,一方面是规范(specification)的区别,另一方面是用法和实现(implementation)上的区别:
Get的语意:请求获取指定的资源;一般用get方法比较安全,冥,可以缓存等一般用cookie存储,也可以用mongodb存储,前端的存储方式对于get方式基本都适用;
Post的语意:根据请求负荷对指定的资源进行处理,具体的处理方式看资源不同而进行不同的处理,一般网页的表单提交基本是post提交;post方法则是相反的,不安全,不冥,不缓存的,一般用表单提交都会连接mongodb数据库或者MySQL数据库,或者本地文档,然后调用,存储,修改,增加;前端的存储方式对于get方式基本都适用;
还有就是请求的时候参数的问题,一般请求都会将参数传递,这就涉及到参数的类型,还有请求的时候参数放到位置;
Get请求参数可以有参数,可以没有参数;参数的位置可以放在在path路径之中,也可以放在header之中,其他地方暂时没有看到放的位置;
Post参数一般在body中,有时候也需要设置在header之中;
对于提交的数据长度对get和post一般没有限制,但是浏览器对其有影响;
Get:GET从理论上或者规范上对数据长度没有限制,但浏览器和操作系统会对这个长度有限制。比如IE对URL长度的限制是2083字节;
Post:POST也没有大小限制的,HTTP协议规范也没有进行大小限制。但服务器一般对长度都有限制,比如微软的 IIS 6.0默认ASP POST数据量最大为200KB,每个表单域限制是100KB;
网络安装方面:
GET因为有缓存和明文传输,安全性相对较弱。使用GET提交敏感数据还可能会造成Cross-site request forgery攻击,get数据传输一般会url地址上显示出口来;
POST 安全性相对较高;而post传输的信息不url上体现出来,安全性较高;
数据包个数:
GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据)
POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。
Get和post区别:
(1)使用Get请求时,参数在URL中显示,而使用Post请求,则不会显示出来;
(2)Post传输的数据量大,可以达到2M,而Get方法由于受到URL长度的限制,只能传递大约1024字节.
(3)Get请求请求需注意缓存问题,Post请求不需担心这个问题;
(4)post请求必须设置Content-Type值为application/x-form-www-urlencoded;
(5)发送请求时,因为Get请求的参数都在url里,所以send函数发送的参数为null,而Post请求在使用send方法时,却需赋予其参数;
(6)GET方式请求的数据会被浏览器缓存起来,因此其他人就可以从浏览器的历史记录中读取到这些数据,例如账号和密码等。在某种情况下,GET方式会带来严重的安全问题。而POST方式相对来说就可以避免这些问题。
表单提交中get和post方式的区别有5点
1.get是从服务器上获取数据,post是向服务器传送数据。
2.get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTPpost机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
3.对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。
4.get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。
5.get安全性非常低,post安全性较高。
get与post的区别2
get:是以实体的方式得到由请求URI所指定资源的信息,如果请求URI只是一个数据产生过程,那么最终要在响应实体中返回的是处理过程的结果所指向的资源,而不是处理过程的描述。
post:用来向目的服务器发出请求,要求它接受被附在请求后的实体,并把它当作请求队列中请求URI所指定资源的附加新子项,post被设计成用统一的方法实现下列功能:
1:对现有资源的解释
2:向电子公告栏、新闻组、邮件列表或类似讨论组发信息。
3:提交数据
4:通过附加操作来扩展数据库
get是向服务器发索取数据的一种请求;而post是向服务器提交数据的一种 请求,要提交的数据位于信息头后面的实体中。