Server.urlEncode vs Server.urlPathEncode

박상수
2 min readMay 21, 2018

--

MS 계열의 메서드(c#) 혹은 함수(vb) 중 urlEncode 메서드와 urlPathEncode라는 메서드가 존재한다.
비슷하면서 다른 차이가 있는데 그것에 대해 잠시 알아보겠다.

그에 앞서 URL에 허용되는 문자열을 알아보자!!

<scheme> : <scheme-specific-part> URL은 사용되는 스키마 (<scheme>)의 이름을 포함하고있다.
소문자 “a”- “z”, 숫자 및 문자 더하기 ( “+”), 마침표 ( “.”) 및 하이픈 ( “-”)이 허용됩니다. 복원성을 위해 URL을 해석하는 프로그램은 대문자를 스키마 이름의 소문자와 동일하게 취급해야합니다 (예 : “HTTP”및 “http”허용).

- RFC 1738 Uniform Resource Locators 중에서

공통점

기본적으로 url에 사용될 문자열 인코딩 할때 사용한다.

차이점

빈공백(Empty String)

  • UrlEncode : “+” 문자열
  • UrlPathEncode : %20

특수문자

  • UrlEncode : 허용되는 문자열 엔티티로 변환
  • UrlPathEncode : 쿼리스트링에 대해 인코딩 하지 않음, 특수문자의 일부만 인코딩
  • 일반적으로 urlPathEncode는 사용하지 말라고 권고
    (단, 브라우저 호환성을 위해 사용, 일반적으로 빈공백에 대한 인코딩을 수행함에 있어 %20을 사용하며, 플렛폼, 브라우저에서의 일관성 있는 인코딩을 위해서 사용)

** 이 글을 통해 개인적인 이익을 취할 생각이 없으며, 이로 인한 광고 같은것도 개제하지 않을 것입니다. 혹시 저작권의 문제가 되거나 잘못된 부분이 있어 글의 삭제나 수정을 원하시면 바로 언제든 적극 반영하겠습니다. **

참고

--

--

No responses yet