2014-12-01 2 views
0

Section 3.4 of RFC 3986 유효한 URI 쿼리 매개 변수 키를 구성하는 요소를 이해하려고 합니다만 명확한 대답은 표시되지 않습니다.유효한 URI 쿼리 매개 변수 키는 무엇입니까?

내가 묻는 이유는 내가 Ruby class that composes a URI with query parameters이라고 쓰고 있기 때문입니다. 새 매개 변수가 추가되면 키의 유효성을 검사하려고합니다. 경험을 바탕으로 탈출이 필요하다면 열쇠가 유효하지 않은 것처럼 보입니다.

또한 키의 유효성을 검사 할 계획이라고 말해야합니다. 이 데이터의 유효성을 검사하는 방법을 잘 모르겠지만 모든 경우에이 값을 벗어나야합니다.

감사합니다. 루비 보석 (Ruby Gem)도 플러스가 될 것이라고 말하는 것을 통해 검증이 이미 가능할 수 있다는 맥락에서의 조언.

+0

이유는 기존의 클래스를 사용하지? Ruby에 내장 된 [URI] (http://www.ruby-doc.org/stdlib-2.1.5/libdoc/uri/rdoc/index.html) 또는 [Addressable :: URI] (https : // github .com/sporkmonger/addressable) 보석은 당신이하려는 일을해야합니다. –

+0

유효성 확인 질문이나 내 ComposeURL 클래스와 관련이 있습니까? –

+0

나는 후자를 추측한다. 필자는 [ComposeURL] (https://github.com/ryanburnette/compose_url) 클래스를 사용하여 URI로 직접 작업하는 것이 더 빠르고 쉽습니다. URI는 비록 의존성이다. –

답변

3

내가 잘못 생각할 수도 있지만 그 스펙에는 '?' 또는 '#'은 유효한만큼 유효합니다. 나는 당신이 'application/x-www-form-urlencoded'(즉, 우리가 모두 익숙한 키/값 쌍)을위한 스펙을 좀 더보아야하는지 궁금하다.

http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.1

이 기본 콘텐츠 유형입니다. 이 콘텐츠로 제출 된 양식 유형은 다음과 같이 인코딩해야합니다.

제어 이름과 값이 이스케이프됩니다. 공백 문자는 +', and then reserved characters are escaped as described in [RFC1738], section 2.2: Non-alphanumeric characters are replaced by % HH ', 퍼센트 기호 및 문자의 ASCII 코드를 나타내는 두 개의 16 진수로 대체됩니다. 줄 바꿈은 'CR LF'쌍 (즉, % 0D % 0A)으로 표시됩니다.

제어 이름/값은 문서에 표시된 순서대로 나열됩니다. 이름은 =' and name/value pairs are separated from each other by & '값과 구분됩니다.

+1

URI에서 기술적으로 유효한 것은 개방되어 있습니다. URI는 HTTP보다 훨씬 많이 사용될 수 있습니다. 양식 인코딩에서 유효한 것은 훨씬 제한되어 있으므로 여기에 집중할 수 있습니다. – tadman