Skip to content

Uniform Resource Identifier

통합 자원 식별자(Uniform Resource Identifier, URI)는 인터넷에 있는 자원을 나타내는 유일한 주소이다. URI의 존재는 인터넷에서 요구되는 기본조건으로서 인터넷 프로토콜에 항상 붙어 다닌다.

위의 프로토콜 형태는 URI의 한 종류인 URL 형식의 표현 방법따른 예 입니다.

URI의 하위개념으로 URL, URN 이 있다.

표현방법

일반 URI와 절대 URI 참조 문법은 RFC 2396에 처음 정의되었으며, 1998년 8월 출판되었으며, RFC 3986로 완성되어, 2005년 1월 출판되었다.

일반 URI는 다음과 같은 형태를 나타낸다:

scheme:[//[user[:password]@]host[:port]][/path][?query][#fragment]

URL (Uniform Resource Locator)

URL(Uniform Resource Locator, 문화어: 파일식별자, 유일자원지시기)은 네트워크 상에서 자원이 어디 있는지를 알려주기 위한 규약이다.

흔히 웹 사이트 주소로 알고 있지만, URL은 웹 사이트 주소뿐만 아니라 컴퓨터 네트워크상의 자원을 모두 나타낼 수 있다. 그 주소에 접속하려면 해당 URL에 맞는 프로토콜을 알아야 하고, 그와 동일한 프로토콜로 접속해야 한다.

FTP 프로토콜인 경우에는 FTP 클라이언트를 이용해야 하고, HTTP인 경우에는 웹 브라우저를 이용해야 한다. 텔넷의 경우에는 텔넷 프로그램을 이용해서 접속해야 한다.

이름 구성

  • URL은 제일 앞에 자원에 접근할 방법을 정의해 둔 프로토콜 이름을 적는다. gopher, telnet, ftp, http, usenet 등이다.
  • 프로토콜 이름 다음에는 프로토콜 이름을 구분하는 구분자인 ":"을 적는다.
  • 만약 IP 혹은 Domain name 정보가 필요한 프로토콜이라면 ":" 다음에 "//"를 적는다.
  • 프로토콜명 구분자인 ":" 혹은 "//" 다음에는 프로토콜 마다 특화된 정보를 넣는다.

URN (Uniform Resource Name)

URN(Uniform Resource Name)은 urn:scheme을 사용하는 URI를 위한 역사적인 이름이다. URN은 영속적이고, 위치에 독립적인 자원을 위한 지시자로 사용하기 위해 1997년도 RFC 2141문서에서 정의되었다.

문법

URN의 문법은 Backus–Naur Form형태로 표현하면 아래와 같다.

<URN> ::= "urn:" <NID> ":" <NSS>

실제로 사용시에는

urn:<NID>:<NSS>

로 표현된다. <NID>는 네임스페이는 지시자이다.

URI vs URL

Uniform Resource Identifier (URI) consists of a string of characters used to identify or name a resource on the Internet (http://en.wikipedia.org/wiki/URI) URI는 인터넷 상의 자원을 식별하기 위한 문자열의 구성쯤으로 해석 될 수 있겠다. URI의 한 형태인 URL은 인터넷 상의 자원 위치를 나타낸다. (http://en.wikipedia.org/wiki/URL) URL는 URI의 한 형태로, 바꿔 말하면 URI는 URL을 포함 하는 개념이다. (URI > URL)

인터넷 상의 자원의 위치와 식별자. 언듯 보면 같은 것을 의미하는 듯 하다. 하지만 '자원의 위치'라는 것은 결국은 '하나의 파일 위치'를 나타내는 것임을 명심하자.

http://img0.gmodules.com/ig/images/korea/logo.gif

이와 같은 형식은 logo.gif라는 인터넷상의 자원 위치를 의미 한다. 이는 URI이면서도 URL라고 말할 수 있다. 다음은 어떠한가.

http://endic.naver.com/endic.nhn?docid=1232950

http://endic.naver.com/란 서버에 위치한 endic.nhn파일은 query string인 docid의 값에 따라 여러가지 결과를 나타낸다. 여기서 URL은 endic.nhn의 위치를 표기한 http://endic.naver.com/endic.nhn까지이다. 내가 원하는 정보에 도달 하기위해서는 ?docid=1232950라는 식별자(Identifier)가 필요한 것이다. 결국 위의 http://endic.naver.com/endic.nhn?docid=1232950주소는 URI이긴 하지만 URL은 아니다.

Slug

슬러그(Slug)란 원래 신문이나 잡지 등에서 제목을 쓸 때, 중요한 의미를 포함하는 단어만을 이용해 제목을 작성하는 방법을 말합니다. 조사나 전치사 등을 빼고 핵심 의미를 담고 있는 단어를 조합해서 긴 제목을 간단 명료하게 표현하는 것이죠. 많은 기사를 다루어야 하는 신문 등에서 편집하는 방법인 것이죠.

워드프레스에서 사용하는 슬러그(slug)도 이런 방법에서 유래한것으로 보입니다. 특히 페이지나 포스트의 제목을 쓰면, 워드프레스에서는 이 슬러그(slug)를 자동을 생성해줍니다. 띄어쓰기는 하이픈(-)으로 대체하고, 쉼표나 마침표 등 기호를 자동으로 없애줍니다.

특히 이 Slug는 검색엔진최적화(Search Engine Optimization)에 유용하게 사용되어집니다.페이지의 주소(url)이 의미를 담고 있는 키워드를 사용하면, 검색엔진에서 더 빨리 페이지를찾아주고 정확한 검색결과를 뿌려주는데 도움이됩니다.

Slug vs ID

  • Slug vs ID
  • 친숙하고 사람이 읽을 수 있는 URL
  • 애플리케이션의 리소스에 대한 실제 ID를 노출하지 않음

슬러그는 데이터베이스의 자동 증가 ID에서 생성되지 않기 때문에 약간의 복잡성을 추가합니다.

애플리케이션은 후보 슬러그를 생성하고 데이터베이스 테이블에서 고유한지 확인하고 필요한 경우 반복해야 합니다.

비교 그 자체는 ID 가 빠르니 DB 에서 외래키(Foreign Key)로 사용하자.

Libraries

Favorite site