HTTP中Get和Post的区别

                          **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是向服务器提交数据的一种 请求,要提交的数据位于信息头后面的实体中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值