URL 인코딩 및 디코딩


URL 소개

URL이란 무엇인가

URLUniform Resource Locator(통일된 자원 위치 지정자)의 약자로, 인터넷 상의 자원 위치를 표시하는 데 사용됩니다.

URL의 형식은 scheme:[//authority]path[?query][#fragment]로, 여기서 authority = [userinfo@]host[:port]입니다.

  1. scheme - 프로토콜을 나타내며, http 또는 ftp와 같이 필수로 채워야 합니다
  2. userinfo - 사용자 정보로 권한 검증에 사용되며, username:password 형식이며 선택적입니다
  3. host - 호스트는 도메인 이름 또는 IP가 될 수 있으며, 필수로 채워야 합니다
  4. port - 포트 번호로, 선택적이며 기본적으로 프로토콜의 기본 포트를 사용합니다
  5. path - 경로는 호스트의 디렉토리 및 파일 주소를 나타냅니다. 선택적입니다
  6. query - 쿼리 매개변수. 선택적입니다
  7. fragment - 조각은 네트워크 자원의 일부를 가리킵니다. 선택적입니다

간단한 URL 예시: https://www.codeeeee.com, 여기서 schemehost만 사용되며, 포트는 https의 기본 포트 443을 사용합니다

URI란 무엇인가

URI는 Uniform Resource Identifier(통일된 자원 식별자)의 약자로, 인터넷 자원의 이름을 표시하는 데 사용됩니다. URL과 URI는 형식이 같고 개념적으로 혼동하기 쉽지만, 때때로 동일하게 사용될 수 있습니다. URL과 URI의 차이점은 전자는 자원의 위치를, 후자는 자원의 이름을 나타낸다는 것입니다. URL은 URI의 한 유형입니다.

URL은 왜 인코딩해야 하나

URL은 ASCII 코드의 문자만 포함할 수 있으므로, 문자 집합 외의 문자가 나타날 때 인코딩이 필요합니다. 동시에, URL에는 :/&와 같은 예약 문자가 있으며, 이러한 문자를 만날 때도 인코딩 변환을 수행해 URL의 해석이 혼동되지 않도록 해야 합니다.

URL 인코딩 규칙

URL 인코딩 시 문자는 해당하는 백분율 인코딩(%)으로 표시됩니다. 구체적인 인코딩 규칙은 여기 URL 인코딩에 대한 소개에서 참조할 수 있습니다.

자바스크립트에서는 encodeURIComponentdecodeURIComponent를 사용하여 URL을 인코딩 및 디코딩할 수 있습니다.