POST 요청에서 % 5B 및 % 5D는 무엇을 의미합니까?


266

특정 웹 사이트에 로그인하기 위해 Java 클래스를 작성하려고합니다. POST 요청에서 전송 된 데이터는

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

주요 사용자 로그인%5B%5D의미가 궁금합니다 .

이 데이터를 어떻게 인코딩합니까?

답변:


482

이 답변에 따라 여기에 : str='foo%20%5B12%5D'인코딩 foo [12]:

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

이를 퍼센트 인코딩 이라고 하며 url 매개 변수 값에서 특수 문자를 인코딩하는 데 사용됩니다.

편집 https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/encodeURI#Description 을 읽는 동안 많은 사람들이 동일한 검색을하는 이유가 나에게 발생했습니다. 페이지 하단의 참고 사항을 참조하십시오.

또한 URL에 대한 최신 RFC3986 을 따르고 자 할 경우 대괄호를 예약하고 (IPv6의 경우) URL의 일부가 될 수있는 (예 : 호스트)를 형성 할 때 인코딩되지 않으면 다음이 도움이 될 수 있습니다.

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

이 질문에 걸려 넘어 질 때 사람들이 문제를 해결하는 데 도움이되기를 바랍니다.


1
대단히 감사합니다.
Rakib Ansary

@TacticalCoder : 예, 감사합니다. 이것은 나의 가난한 영어입니다. 즉시 수정하십시오.
Boris Strandjev

RFC3986 링크가 끊어졌습니다
DudeOnRock




3

간단히 살펴 보려면 이 온라인 도구를 사용하여 퍼센트 인코딩 / 디코딩 할 수 있습니다 .


1
이 링크가 질문에 대한 답변을 제공 할 수 있지만 여기에 답변의 필수 부분을 포함시키고 참조 용 링크를 제공하는 것이 좋습니다. 링크 된 페이지가 변경되면 링크 전용 답변이 유효하지 않을 수 있습니다. - 검토에서
Peter

@Peter 감사합니다. 그러나 이것은 온라인 도구에 대한 링크 일 뿐이며 여기서 유용 할 수 있습니다. 답변이 이미 제공되었으므로 추가 설명이 필요하지 않습니다.
Krzysztof Przygoda

1

데이터는 아마도 다음과 같은 웹 양식에서 게시되었을 것입니다 (그러나 훨씬 더 복잡 할 것입니다).

<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>

메소드가 "post"대신 "get"인 경우 제출 단추를 클릭하면 다음과 같은 URL로 이동합니다.

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

또는:

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

다른 쪽 웹 서버는 user[login]and user[password]매개 변수를 가져 와서 해당 값이 포함 된 user개체 loginpassword필드 로 만듭니다 .


0

이 기호가 URL에서 나타나는 이유는 중요하지 않습니다. https://www.php.net/manual/en/function.parse-str.php#76792 에서 구체적으로 다음을 참조 하십시오 :

parse_str('foo[]=1&foo[]=2&foo[]=3', $bar);

위의 내용은 다음과 같습니다.

$bar = ['foo' => ['1', '2', '3'] ];

그리고 쿼리 변수를 배열로 분리하는 방법은 무엇입니까 (적어도 PHP에서는).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.