2016-11-28 3 views
0

URL의 마지막 부분이 json 값인 요청을 보내야합니다. :이 디코딩되지 않은 동일한 결과가 나오지만 다음 여러 인코딩을 사용하여 여러 다른 사이트에서 사용할 수 있도록 다음 코드를 {"period":"600s"}에 인코딩했습니다.URL을 어떻게 인코딩합니까?

인코딩 된 URL : stickiness=%7B%22period%22%3A%22600s%22%7D. 내 브라우저에 입력

그 결과,

enter image description here가 어떻게 나는 :를 인코딩합니까?

답변

1

%3A:의 인코딩 인입니다. :은 포트 번호를 지정하는 URI에 예약되어 있습니다 (예 : google.com:443443 포트를 수동으로 지정하고 기본값은 HTTPS 포트). URI에 :을 포함하려면 precent-sign-encoded이어야하며 이는 %3A입니다. : 문자의 예약 목적을 위반하기 때문에 URL 표시 줄에서 디코딩 할 수 없습니다.

+0

이렇게하면 URL에 인코딩 된 ':'을 가질 수 없거나 작동한다는 것을 의미하지만':'자체는 표시되지 않고 인코딩 된 문자로 표시됩니까? – annedroiid

+0

인코딩 된':'('% 3A') 만 가질 수 있습니다. "단지 작동 하겠지만, 그 자체로, 그러나 인코딩 된 캐릭터로는 보이지 않을 것입니다." 예. – Alexander

+0

그래, 내 요청이 예상대로 작동하지 않아서 인코딩이 이유라고 추정했다. 감사 :) – annedroiid

1

브라우저에서 콜론 문자가 이미 다른 곳의 URL에 명시 적으로 의미가있는 the reserved characters에 속하므로 브라우저에서 디코딩되지 않습니다.이 경우 호스트 이름 및 호스트 이름 뒤에서 프로토콜을 분리합니다.

많은 URL 체계는 특별한 의미에 대한 특정 문자를 예약 :

관련 표준은 3 페이지, RFC 1738있는 URL의 계획 - 특정 부분에 외모가 지정된 의미를 가지고있다. 옥텟에 해당하는 문자가 체계에 예약 된 인 경우 옥텟을 인코딩해야합니다. ";", "/", "?", ":", "@", "="및 "&"문자는 일 수 있습니다. 스키마 내에서 문자를 다른 문자로 사용할 수 없습니다.

일반적으로 URL은 옥텟이 문자로 표현 된 일 때와 인코딩 할 때 동일한 해석을 사용합니다. 그러나 은 예약 문자에 해당하지 않습니다. 예약 문자를 인코딩하면 URL의 의미가 변경 될 수 있습니다.

따라서 예약 된 목적으로 사용 된 예약 문자는 "$ -_. +! * '(),"및 " "특수 문자로 URL 내에서 인코딩되지 않고 사용 될 수 있습니다.

관련 문제