Django中的GET和POST

         本来是想看一下django中的HttpResponse的使用细节,无意中发现了这么个”大家都以为自己知道,其实大家真的很少知道“的问题:POST和GET的区别

         参考了几篇比较好的文章:         

         1、GET和POST有什么区别?及为什么网上的多数答案都是错的。

         2、在Web开发中,你为什么选择使用get提交?

         3、从HTTP GET和POST的区别说起

         以下是对以上几篇文章的概括总结:

         POST和GET的差别其实是很大的。

  • 语义上,GET是获取指定URL上的资源,是读操作,而POST的语意是对指定资源“追加/添加”数据

          GET的请求是幂等和安全,所谓幂等,是说GET方法行多次和执行一次的效果是一样,所谓安全是指,除了获取资源外,不会对服务器的资源产生什么影响,所以GET返回的内容可以被浏览器,Cache服务器缓存起来。而POST方法被默认为会改变服务器资源的状态,所以它被认为是不安全的,Cache服务器不会缓存POST请求的任何内容。

          从某种意义上来说,GET是围观者(我只看不动手);POST是参与者(我不光看,必要的时候也是会出手的)。

  • 形式上,GET的请求参数以Query String的形式跟在url的后面(就是那个?后面一串),而POST的请求参数是放在HTTP的body中的(HTTP的request分为三部分:请求行、请求包头、请求正文,详见:HTTP协议详解)

        另外,虽然不常用,GET请求参数也是可以放在body中的,见:HTTP GET with Message Body

        在Django中,request的请求参数一般可在4个地方见到:request.POST,request.GET,request.REQUEST(=POST+GET),request.body(只有post请求的时候才会有)。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值