小伙伴们都知道,常用的http请求有两种方式,即GET方法和POST方法,很多刚入门的童鞋难免都会有一个误区,是不是GET是从服务器上获取数据,POST是向服务器传送数据?

我的理解是:不论是GET还是POST,都是向服务器提交数据,并且请求之后都会从服务器获取数据,两者的区别仅是传送方式不同而已,GET通过地址栏传输,POST通过报文传输。对资源的增删改查操作其实都可以通过get/post方法来实现,下面就详细介绍一下这两种方法:

一、请求原理以及方式:

1、GET 请求

GET请求不存在请求实体部分,键值对参数放置在 URL 尾部,浏览器把form数据转换成一个字串(name1=value1&name2=value2...),然后把这个字串追加到url后面,用?分割,加载这个新的url。因此请求头不需要设置 Content-Type字段。

非 ASCII 码会自动进行编码转换,例如发送请求:www.lalalal.com?haha=哈哈    。

值得一提的是,GET 参数的编码方式是无法人为干涉的,这导致了不同浏览器有不同的编码方式,因此最稳妥的方案是人工预编码,人工解码,从而禁止浏览器编码的干涉。

2、POST 请求

POST把提交的数据则放置在是HTTP包的包体中。Http Header里的Content-Type一般有好几种方式,但是我自己接触到的是以下两种方式:

a)   application/x-www-form-urlencoded:数据被编码为名称/值对。这是标准的编码格式。浏览器的原生 form 表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数据。会将表单内的数据转换拼接成 key-value 对(非 ASCII 码进行编码)

b)   application/json:由于JSON 格式支持比键值对复杂得多的结构化数据,这一点现在越来越多的人把它作为请求头,用来告诉服务端消息主体是序列化后的 JSON 字符串。本文就是重点介绍这种方式。

二、后端获取参数的方式

对于后台接受来自前台的请求时,且Content-Type为application/json时,可以传递参数也可以不传递参数,但是多数情况下是需要有参数传来的,所以,下面就只介绍有参数传过来的情形:

1、获取GET参数 Get:([FromQuery] User user)

[fromQuery]是告诉模型绑定在解析的过程中从HttpContext中那一部分获取信息。

2、获取POST参数 Post:([(FromBody)] User user)

[FromBody] 是参数绑定的过程中,告诉框架该参数是使用配置过的格式化程序从Http Body 中解析。和get不同的是,在接受参数的时候必须要先建立一个实体类来接受参数,并且该实体类必须与前端的请求参数一模一样。

最新文章

  1. $_SERVER 详情
  2. JS代码判断IE6,IE7,IE8,IE9!
  3. hdu 1532(最大流)
  4. 安卓向服务器发送List数据
  5. 初识iOS9 iPad新特性SlideView和SplitView的适配
  6. linux命令useradd添加用户详解
  7. USACO3.42American Heritage(二叉树)
  8. xampp版本和具体的php,mysql版本的对应
  9. 专业运维配的vsftpd.conf
  10. 2.3 os 模块
  11. css学习_css BFC特性(块级格式化上下文)
  12. Hexo+Github博客最简教程-Dockerfile自动搭建
  13. Awvs、Snort的下载安装
  14. Tornado基于MiddleWare做中间件
  15. PAT A1127 ZigZagging on a Tree (30 分)——二叉树,建树,层序遍历
  16. AIC和BIC
  17. WebRTC架构和协议栈-zz
  18. 吴裕雄 python 机器学习-Logistic(1)
  19. Android中使用Handler以及CountDownTimer实现包括倒计时的闪屏页面
  20. JavaScript中函数参数的值传递和引用传递

热门文章

  1. 关于Remoting的个人使用心得
  2. 好一个Time_Wait状态(TCP/IP)
  3. Core Data 入门
  4. mysql数据库怎么安装到自己的电脑上?
  5. [KVM][guestfs] 安装 guestfs-python 出错
  6. 高性能Web服务器Nginx的配置与部署研究(14)平滑升级你的Nginx
  7. Nginx 源码完全注释(10)ngx_radix_tree
  8. Unity代码里的Position和界面上的Position
  9. 让tomcat自动定位到项目
  10. OC中数组排序总结