POST请求中的%5B和%5D代表什么?
我试图编写一个Java类来login到某个网站。 在POST请求中发送的数据是login的
user%5Blogin%5D=uesrname&user%5Bpassword%5D=123456
我很好奇%5B
和%5D
在关键用户login中的含义。
我如何编码这些数据?
根据这个答案在这里 : str='foo%20%5B12%5D'
编码foo [12]
:
%20 is space %5B is '[' and %5D is ']'
这称为百分比编码 ,用于编码url参数值中的特殊字符。
编辑顺便说一下,因为我正在阅读以下文章 ,它只是想到了为什么这么多人进行相同的search。 请参阅页面底部的注释:
还要注意的是,如果希望按照最近的RFC3986的URL,保留方括号(用于IPv6),因此在形成可能是URL(例如主机)的一部分的东西时不进行编码,下面的内容可能会有所帮助。
function fixedEncodeURI (str) { return encodeURI(str).replace(/%5B/g, '[').replace(/%5D/g, ']'); }
希望这会帮助人们在遇到这个问题时理清问题。
他们代表[
和]
。 该编码被称为“URL编码” 。
那么这是通常的url编码
所以他们代表[
分别]
URL编码时将[]
%5B%5D
[]
replace为%5B%5D
。
要快速查看,您可以使用此在线工具进行百分比编码/解码。
数据可能原本是从一个Web表单看起来有点像这样(但可能更复杂):
<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”,点击submitbutton会带你到一个像这样的URL:
http://example.com/?user%5Blogin%5D=username&user%5Bpassword%5D=123456
要么:
http://example.com/?user%5Blogin%5D=username&user%5Bpassword%5D=123456
另一端的Web服务器可能会将user[login]
和user[password]
参数,并使其成为包含这些值的login
和password
字段的user
对象。