it-gundan.com

URL에서 사용하기에 안전한 특수 문자는 무엇입니까?

URL에서 사용하기에 안전한 특수 문자는 무엇입니까?

13
YOU

안전 문자는 a-z, A-Z, 0-9 및 _-(밑줄 및 빼기)이며 매개 변수에 사용되는 예약 문자 외에 있습니다.

다른 캐릭터들은 어느 정도 문제를 일으킬 것입니다. 예 : 하나의 매개 변수가 ?param=array[content] 배열 인 경우, 즉 인코딩 된 대괄호 URL에 URL을 표시합니다.

그러나 문제는 추악한 것뿐만 아니라 더 안전한 문자 옆에 문자가있는 jpg가 있다고 가정하면 브라우저에서 404를 다운로드 할 수없는 경우가 많습니다. 이는 구형 브라우저 및 일부 모바일 브라우저의 문제입니다.

이것을 테스트하는 방법?

  • 많은 방문자가있는 공개 페이지의 이름으로 테스트하려는 문자로 이미지/JS/CSS를 많이 넣습니다.
  • 적중 할 때마다 404 페이지에서 이메일을 보내도록하십시오

내 요점을 증명하는 14000 개의 이메일이 포함 된받은 편지함이 있습니다.

10
The Disintegrator

다음 문자는 URL의 경로 구성 요소에서 특별한 의미를 갖습니다 (경로 구성 요소는 '?'앞의 모든 것).

  ";" | "/" | "?"

그 외에도 다음 문자는 URL의 쿼리 부분 ( '?'다음에 나오는 모든 문자)에서 특별한 의미를 갖습니다. 따라서 '?'뒤에 오는 경우 당신은 그들을 탈출해야합니다 :

  ":" | "@" | "&" | "=" | "+" | "$" | ","

보다 자세한 설명은 RFC 를 참조하십시오.

11
Thomas Bonini

여기에 대한 답변은 좋지만 영어 이외의 문자는 언급 할 가치가 있다고 생각합니다. 이 SF 질문 을 참조하면, ñ와 같은 문자 (Español에서와 같이)가 DNS에서 올바르게 인코딩 된 경우 완벽하게 합법적입니다.

최신 브라우저 (español에 대한 항목은 xn--espaol-zwa 임)에서 확인하려면 DNS 내에서 Punycode 를 사용해야하지만 이제는 도메인 이름에서 사용하기에 완벽하게 안전합니다. 영어 이외의 언어를 사용하는 사람도 쉽게 입력 할 수 있습니다.

3
Mark Henderson