POST请求中的%5B和%5D代表什么?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了POST请求中的%5B和%5D代表什么?相关的知识,希望对你有一定的参考价值。

我正在尝试编写一个Java类来登录某个网站。 POST请求中发送的数据是登录的

user%5Blogin%5D=uesrname&user%5Bpassword%5D=123456

我很好奇%5B%5D在关键用户登录中意味着什么。

我如何编码这些数据?

答案

根据here的这个答案:str='foo%20%5B12%5D'编码foo [12]

%20 is space
%5B is '['
and %5D is ']'

这称为percent encoding,用于编码url参数值中的特殊字符。

编辑顺便说一下,当我阅读https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/encodeURI#Description时,我突然想到为什么这么多人进行相同的搜索。请参阅页面底部的注释:

另请注意,如果有人希望关注更新的RFC3986用于URL,则保留方括号(用于IPv6),因此在形成可能是URL的一部分(例如主机)时不进行编码,以下内容可能会有所帮助。

function fixedEncodeURI (str) {
    return encodeURI(str).replace(/%5B/g, '[').replace(/%5D/g, ']');
}

希望这可以帮助人们在遇到这个问题时理清他们的问题。

另一答案

他们代表[]。编码称为"URL encoding"

另一答案

在URL编码时,[]%5B%5D取代。

另一答案

嗯,这是通常的url encoding

所以他们分别代表[]

另一答案

快速浏览,您可以使用this online tool进行百分比/解码。

另一答案

这些数据可能最初是从一个看起来有点像这样的网页表格中发布的(但可能要复杂得多):

<form action="http://example.com" method="post">

  User login    <input name="user[login]"    /><br />
  User password <input name="user[password]" /><br />

  <input type="submit" />
</form>

如果方法是“get”而不是“post”,单击“提交”按钮会将您带到一个看起来像这样的URL:

http://example.com/?user%5Blogin%5D=username&user%5Bpassword%5D=123456

要么:

http://example.com/?user[login]=username&user[password]=123456

另一端的Web服务器可能会获取user[login]user[password]参数,并使用包含这些值的userlogin字段将它们变成password对象。

以上是关于POST请求中的%5B和%5D代表什么?的主要内容,如果未能解决你的问题,请参考以下文章

提交表单时从 URL 中删除 %5B%5D

用jquery $.ajax 请求后台老是url %5Bobject%20Object%5D而报404错误,为啥?

Oracle Alert日志出现Incremental checkpoint up to RBA [0x5d02.5e5b.0], current log tail at RBA [0x5d02.7b

UITextField和一个UILabel绑定 浅析

转:PHP中的使用curl发送请求(GET请求和POST请求)

ASSEMBLY中的59代表什么? [重复]