.net core MVC接受来自自前端的GET和POST请求方法的区别
小伙伴们都知道,常用的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不同的是,在接受参数的时候必须要先建立一个实体类来接受参数,并且该实体类必须与前端的请求参数一模一样。
.net core MVC接受来自自前端的GET和POST请求方法的区别的更多相关文章
- ASP.NET Core MVC使用MessagePack配合前端fetch交换数据
1.安装Nuget包 - WebApiContrib.Core.Formatter.MessagePack https://www.nuget.org/packages/WebApiContrib.C ...
- 【前端】CSS隐藏元素的方法和区别
CSS隐藏元素的方法和区别 <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...
- web前端面试第一次[javascript函数和方法的区别]
//函数 function f1(){ console.log("我是函数"); } //调用函数 f1(); //创建一个空对象 var obj = {} //把函数定义到对象里 ...
- ASP.NET Core MVC 之模型(Model)
1.模型绑定 ASP.NET Core MVC 中的模型绑定将数据从HTTP请求映射到操作方法参数.参数既可以是简单类型,也可以是复杂类型.MVC 通过抽象绑定解决了这个问题. 2.使用模型绑定 当 ...
- asp.net core mvc权限控制:权限控制介绍
在进行业务软件开发的时候,都会涉及到权限控制的问题,asp.net core mvc提供了相关特性. 在具体介绍使用方法前,我们需要先了解几个概念: 1,claim:英文翻译过来是声明的意思,一个cl ...
- ASP.NET Core 入门教程 3、ASP.NET Core MVC路由入门
一.前言 1.本文主要内容 ASP.NET Core MVC路由工作原理概述 ASP.NET Core MVC带路径参数的路由示例 ASP.NET Core MVC固定前/后缀的路由示例 ASP.NE ...
- ASP.NET Core MVC 概述
https://docs.microsoft.com/zh-cn/aspnet/core/mvc/overview?view=aspnetcore-2.2 ASP.NET Core MVC 概述 20 ...
- ASP.NET Core 入门笔记4,ASP.NET Core MVC路由入门
敲了一部分,懒得全部敲完,直接复制大佬的博客了,如有侵权,请通知我尽快删除修改 摘抄自https://www.cnblogs.com/ken-io/p/aspnet-core-tutorial-mvc ...
- ASP.NET Core MVC如何上传文件及处理大文件上传
用文件模型绑定接口:IFormFile (小文件上传) 当你使用IFormFile接口来上传文件的时候,一定要注意,IFormFile会将一个Http请求中的所有文件都读取到服务器内存后,才会触发AS ...
随机推荐
- django初体检课程
最简便的Python web开发框架. C:\Windows\System32>E: E:\>django-admin startproject mysite E:\>cd mysi ...
- jar 运行报错:找不到或无法加载主类
NIFEST.MF文件中指定的,如下所示:Manifest-Version: 1.0Class-Path: .Main-Class: com.webex.app.Main // ...
- fedora 16 yum yuan
暑假买了几本Linux的书一直放在书架上没看,周末闲着没事就拿起本<LinuxC从入门到精通>看了起来,初学Linux首先要做的便是在电脑上安装Linux系统.于是按书上的要求下载了Fed ...
- Hibernate中Session与本地线程绑定
------------------siwuxie095 Hibernate 中 Session 与本地线程绑定 1.Session 类似于 JDBC 的连接 Connection 2.Session ...
- spring4-2-bean配置-6-使用外部属性文件
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAk0AAAFGCAIAAAD4tzxRAAAgAElEQVR4nO2d27HsOm+tOxWn4CeXAm ...
- nodejs、webpack
开发环境,直接本机下载代码回来,装好nodejs.webpack(安装方法 npm install webpack -g), 切换到项目根目录下 1.安装依赖:npm install 2.执行webp ...
- PollingProvider方法的使用及示例
来自<sencha touch权威指南>第12章,374页开始 ----------------------------------------------------- PollingP ...
- code1091 传染病控制
1.读入图,边是双向的 2.递归建树,同时确定每一层的节点 3.dfs按层搜索,先把这一层所有被传染的(die[pa[k]]=true的)的die置为true 然后循环,每次把一个die为true的变 ...
- a Concise Sparse Matrix package
简明稀疏矩阵包 https://github.com/kulhanek/csparse https://github.com/kulhanek/csparse
- Log4j配置(转)
原文:http://www.blogjava.net/zJun/archive/2006/06/28/55511.html Log4J的配置文件(Configuration File)就是用来设置记录 ...