@
사용자의 일부로 기호 를 사용하는 것이 안전 합니까? 예를 들어 가능한 URL은입니다 http://example.com/@dave
.
요즘에는 사용자를 일반적으로 “@user”라고 부르는데 사용자 페이지를 “@username”으로 만들지 않겠습니까?
답변
퍼센트 인코딩 된 …
당신은 사용할 수 있습니다 @
당신이 경우 HTTP URI 경로에 문자를 퍼센트 인코딩 으로 %40
.
많은 브라우저에서 여전히으로 표시 @
하지만 예를 들어 URI를 텍스트 문서에 복사하여 붙여 넣으면 %40
.
… 또한 직접
백분율 인코딩 대신 @
HTTP URI 경로에서 직접 사용할 수 있습니다 .
URI 의 경로 는 구문을 참조하십시오 . 다양한 무관 절 제쳐두고 경로는 문자로 구성 될 수있다 segment
, segment-nz
또는 segment-nz-nc
세트. segment
그리고 segment-nz
로부터 문자로 구성 pchar
으로 정의 세트 :
pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
보시 @
다시피이 명시 적으로 나열됩니다.
이 segment-nz-nc
세트는 또한 @
문자를 명시 적으로 나열합니다 .
segment-nz-nc = 1*( unreserved / pct-encoded / sub-delims / "@" )
따라서 다음과 같은 HTTP URI는 완전히 유효합니다.
http://example.com/@dave
예
다음은 Wikipedia 페이지의 예입니다.
- 링크
- 복사 및 붙여 넣기:
http://en.wikipedia.org/wiki/%22@%22_%28album%29
당신이 볼 수 있듯이, "
, (
, 및 )
문자는 퍼센트 인코딩,하지만 @
과는 _
직접적으로 사용된다.
답변
URL에 @-기호를 사용할 수 있습니까? – 예, 할 수 있습니다!
@ 문자, 16 진수 값 40, 10 진수 값 64는 URI 용으로 예약 된 문자입니다. mailto:
예를 들어 URI의 이메일 주소와 같은 용도로 사용됩니다.mailto:username@somewhere.foo
사용자 이름 및 비밀번호 정보를 전달하는 데 사용됩니다 (나쁜 생각이지만 가능합니다).http://username:password@somewhere.foo
경로에 @-기호가있는 URL을 원하는 경우 “”로 인코딩해야합니다. URL 인코딩 ” 으로 인코딩해야 합니다. 예를 들면 다음과 같습니다.http://somewhere.foo/profile/username%40somewhere.foo
모든 최신 브라우저는 이것을 다음과 같이 표시합니다. http://somewhere.foo/profile/username@somewhere.foo 하고 @ -sign에 입력 한 모든 것을 다음으로 변환합니다.%40
하므로 사용하기 쉽습니다.
많은 웹 프레임 워크는 또한 자동으로 또는 도우미 기능을 사용하여 URL 인코딩 된 URL로 또는 URL로 변환하는 데 도움을줍니다.
요약하자면 : 예, URL에 @ -symbol 을 사용할 수 있지만 @ -character를 사용할 수 없으므로 인코딩되었는지 확인해야합니다 .
답변
에서 RFC 다음 문자는 :
! * ‘(); : @ & = + $, /? % # []
예약되어 있으며 :
예약 된 문자의 목적은 URI 내의 다른 데이터와 구분할 수있는 구분 문자 집합을 제공하는 것입니다.
따라서 인코딩없이 이러한 문자를 사용하지 않는 것이 좋습니다.
답변
기본적으로 아니.
@
예약 된 문자이며 의도 된 용도로만 사용해야합니다.
참조 : http://perishablepress.com/stop-using-unsafe-characters-in-urls/ 및 http://www.ietf.org/rfc/rfc3986.txt
인코딩으로 사용할 수 있지만 그게 당신이 요청한 것이라고 생각하지 않습니다.
분명히 최신 브라우저가이를 처리 할 것입니다. 그러나 이것이 안전한지 물었고 RFC 의 사양에 따라 의도 된 목적을위한 것이 아니라면 사용해서는 안됩니다 (인코딩되지 않음).