post参数放url后面与放body中的区别 5C

post参数放url后面与放body中的区别,为什么我将参数放在body里面,服务器端跟我说

接收不到我提交的数据

再详细一点,后台给了一个接口,是post请求,但是请求是通过URL拼接成的,就跟get
请求一样,所有的参数、数据都在URL里面,那么参数放url后面和放body里面有什么
区别?

Te_small
Te_small 楼主整明白为什么了吗?能否解答一下
接近 2 年之前 回复

16个回答

HTTP协议中有2种向服务器提交数据的方法,一种是get,另一种是post的, 其中get方式要提交的变量在URL中,post方式通过表单提交过去,其实本质上没有特别大的区别,在做安全人的眼里一样的。只不过get提交的变量在URL体现会感觉不够安全,其实通过抓包post的数据也是可以轻松搞定。服务器给你的响应状态码是什么?通过状态码诊断服务器的问题和网络情况。

HTTP协议中有2种向服务器提交数据的方法,一种是get,另一种是post的, 其中get方式要提交的变量在URL中,post方式通过表单提交过去,其实本质上没有特别大的区别,在做安全人的眼里一样的。只不过get提交的变量在URL体现会感觉不够安全,其实通过抓包post的数据也是可以轻松搞定。服务器给你的响应状态码是什么?通过状态码诊断服务器的问题和网络情况。

qsh18968155492
芜湖梁朝伟 我没问get与post的区别,是问参数位置不同有什么区别
2 年多之前 回复

估计是你没有设置content-type=application/x-www-from-urlencoded

caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复芜湖梁朝伟: 在你的html表单里的form标签里设置
2 年多之前 回复
qsh18968155492
芜湖梁朝伟 这是在客户端请求的时候设置吗?
2 年多之前 回复

post是将数据放到body里,有key和值,对应就可以了,url后面不加东西

Huangxiang6
善见致知 回复: 楼主可能是问的这个
接近 2 年之前 回复
Huangxiang6
善见致知 但是post可以通过url拼接字段来获取资源吧?就是把body中的参数放到url后面
接近 2 年之前 回复

有人告诉我:

放在url上其实就是相当于head里面,head和body对参数的自己大小限制是不一样的,http协议本身是没有做限制的,但是传输包是有大小限制的,正常body里面应该是没有限制,因为有些传个几G的文件都没啥问题

那么有有哪些原因会造成我把参数放body中,服务端会获取不到

qq_15259781
ClassNotDef 看你是以什么格式提交数据的,post的话一般会是“application/x-www-form-urlencoded“,那应该是可以取得数据(存储的方式是跟get一样url编码,只是保存在body里面);还有上传文件的时候是”multipart/form-data“,如果是这种的话,取参数的方式跟前面有所不同,所以没注意的话可能就取不到;还有”applicaiton/json“等等
2 年多之前 回复

先看一个例子:
一个二级级联动态下拉列表框,一级分类(即大类别)id="vSort0".
复制代码 代码如下:


function changelocation(id)
{…………}

……省略……
………………

现在有个js脚本:
复制代码 代码如下: changelocation(document.form4.vSort0.options[document.form4.vSort0.selectedIndex].value); //初始化第一个一级分类的二级分类,去掉后第一个一级分类的二级分类在页面载入之后不显示。回选才显示。将一级分类的value传给changelocation()函数,生成二级分类的列表

那么把这个js脚本放head里面还是body里面呢?
答案是不仅要放到body里面,而且还得放到定义id='vSort0'的列表框后面,因为这个js脚本中有document.form4.vSort0.selectedIndex,如果放到head里或者body的id='vSort0'前,页面加载后顺序执行代码,执行到这个js发现vSort0未定义(即undefind),这个js也就失去了作用。
而为什么我们经常看到有很多的人把js脚本放到head里面没事呢?对!
就是因为你看到的在head里的js代码有onclick等事件传递了变量给函数。

qsh18968155492
芜湖梁朝伟 首先感谢你的回答,你的这个答案我也在百度上看到了,但是这个答案到底跟我解释了什么?
2 年多之前 回复

区别不知道,只是参数内容大小有限制,比如保存操作,参数比较多的情况,你总不能全部拼接到url

Huangxiang6
善见致知 回复qsh18968155492: 那在程序里面怎么办呢?
接近 2 年之前 回复
qsh18968155492
芜湖梁朝伟 是的,而且不一定是参数多,还有参数的数据特别长也是,很可能会造成414(URL长度太长)的异常
2 年多之前 回复

post参数拼接到url里面,参数不同相当于是两个接口啊。post就是将参数放在一个对象里,get就是没有这个参数啊

Huangxiang6
善见致知 你提醒我了,参数多就放到对象里面,比如说结构体,或者链表
接近 2 年之前 回复

看你的获取方式,如果是post。获取就不能用Request.QueryString

qsh18968155492
芜湖梁朝伟 我不是写后台的,我不知道后台是怎么获取的,但是后台说获取不到我扔body里的对象,我感觉不是我的问题,是他获取的问题
2 年多之前 回复

放在url后面拼接相当于加了一个params,放在body里面有key value对应传递参数

共16条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐