POST 요청 %5B 및 %5D는 무엇을 나타냅니까?
특정 사이트에 로그인하기 위해 자바 클래스를 작성하려고 합니다.로그인하기 위해 POST 요청으로 전송되는 데이터는 다음과 같습니다.
user%5Blogin%5D=username&user%5Bpassword%5D=123456
이게 뭔지 궁금하네%5B
그리고.%5D
는 키 사용자 로그인을 의미합니다.
이 데이터를 어떻게 디코딩합니까?
여기 이 답변에 따르면:str='foo%20%5B12%5D'
부호화foo [12]
:
%20 is space
%22 is quotes
%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, ']');
}
바라건대 이것은 사람들이 이 질문을 우연히 발견했을 때 그들의 문제를 해결하는 데 도움이 될 것이다.
이들은 다음을 나타냅니다.[
그리고.]
이 인코딩을 "URL 인코딩"이라고 합니다.
[]
에 의해 대체됩니다.%5B%5D
URL 인코딩 시.
일반적인 URL 인코딩입니다.
그래서 그들은[
,각각 다음과 같다.]
이러한 값을 확인하려면 브라우저에서 콘솔을 사용하여 다음을 수행합니다.
console.log(decodeURI('user%5Blogin%5D=username&user%5Bpassword%5D=123456'))
간단히 알아보려면 이 온라인 도구를 사용하여 %-en/decode를 수행할 수 있습니다.
데이터는 원래 다음과 같은 웹 폼에서 게시되었을 것입니다(그러나 훨씬 더 복잡할 수 있습니다.
<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"인 경우, Submit 버튼을 클릭하면 다음과 같은 URL이 나타납니다.
http://example.com/?user%5Blogin%5D=vp&user%5Bpassword%5D=123456
또는 다음과 같이 입력합니다.
http://example.com/ user [ http://example.com/ ]= http://example.com/ & user [ password ]= 123456
다른 한쪽의 웹 서버는 아마도user[login]
그리고.user[password]
파라미터로 변환합니다.user
에 이의를 제기하다.login
그리고.password
이러한 값을 포함하는 필드.
가장 중요한 것은 이러한 기호가 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)은 무엇입니까?
언급URL : https://stackoverflow.com/questions/9966053/what-does-5b-and-5d-in-post-requests-stand-for
'programing' 카테고리의 다른 글
JOIN 쿼리 vs 여러 쿼리 (0) | 2022.09.12 |
---|---|
마리아DB 루스터를 초기화할 때 백엔드 연결을 열지 못했습니다. -98(이미 사용 중인 주소) (0) | 2022.09.12 |
_(언더스코어)는 예약된 키워드입니다. (0) | 2022.09.12 |
int num = Integer.get이 되는 이유정수("123") 던지기 Null Pointer예외? (0) | 2022.09.12 |
원칙의 기본값 (0) | 2022.09.12 |