도입
URI, URL, URN에 대하여 알아보자.
URI(Uniform Resource Identifier)
리소스를 식별할 때 다른 항목과 구분하는데 필요한 정보로 리소스가 있는 위치(Location) 혹은 이름(Name)이 있을 수 있다.
URL(Uniform Resource Locator)
리소스를 식별하는데 위치(Location)으로 필요한 정보를 구분하는 방법이다.
URL을 만드는 방법은 아래와 같다.
scheme
- scheme은 프로토콜로 자원을 접근하는 방법을 의미한다.
- http, https, mailto, ftp 등등이 있다.
- http://username:password@www.google.com:80/search?q=hello#20
userinfo
- 사용자의 인증정보를 포함해서 URL에 전달하는 기능으로 잘 사용하지 않는다.
- http://username:password@www.google.com:80/search?q=hello#20
host
- 도메인 주소 혹은 웹 서버의 ip주소를 의미한다. 도메인 주소로 넘겨질 경우 DNS를 통해 해당 ip 주소를 받을 수 있다.
- http://username:password@www.google.com:80/search?q=hello#20
port
- host로 찾은 웹 서버의 ip로 가서 어느 문으로 통과할지에 대한 정보이다.
- http는 80포트, https는 443포트를 사용하며 상용포트를 사용시 생략이 가능하다.
- http://username:password@www.google.com :80/search?q=hello#20
path
- 웹서버에서 리소스가 있는 경로를 의미한다.
- http://username:password@www.google.com:80/search?q=hello#20
query
- 쿼리 파라미터를 의미하며 웹서버로 전달하는 데이터이다.
- ? 이후에 데이터를 입력하며 &를 활용해 추가적으로 데이터를 전달할 수 있다.
- http://username:password@www.google.com:80/search?q=hello#20
fragment
- 부분 식별자로 북마크 역할을 수행한다.
- http://username:password@www.google.com:80/search?q=hello#20
URL 예시
URL의 문제점
URL의 방법은 리소스의 위치가 바뀌면 기존의 url로 접근을 하던 사람들이 사용을 못하는 문제점이 있다.
예를들어, 구글에서 검색을 한 정보를 www.google.com/search?q=xx와 같이 /search 뒤에 쿼리파라미터로 검색을 하였는데, 만약 구글에서 url정보를 임의로 리소스를 www.google.com/s?q=xx로 검색을 변경하였다고 생각해보자. 그러면, 기존에 /search로 검색을 하였던 사람들은 찾을 수 없는 페이지라는 오류로 결과를 받게 된다.
URN(Uniform Resource Name)
리소스를 식별할 때 이름(Name)으로 필요한 정보를 구분하는 방법이다.
URN은 영구적이고 유일하게 식별되는 리소스이어야 한다.
URN을 만드는 방법은 아래와 같다.
URN 예시
- urn:ietf:rfc:2141 -> 'RFC 2141' 문서
- urn:isbn:1234567891234 ->국제 표준도서번호
URN은 불변의 이름으로 구분을 하기 때문에 URL의 한계를 극복할 수 있다.
URI, URL, URN의 관계
URI를 위해 URL과 URN이 있고, URL은 Location으로 URN은 Name으로 리소스를 구분한다.
배운내용
1. URI는 URL과 URN을 포함하는 개념이다.
2. URL은 리소스를 Location으로 식별하고 URN은 Name으로 식별한다.
잘못된 정보가 있을 경우 댓글 남겨주시면 감사하겠습니다 :)
'Etc > odds and ends' 카테고리의 다른 글
OSI 7계층을 알아보자. (0) | 2021.12.30 |
---|---|
DNS(Domain Name Service)란 무엇인가? (0) | 2021.12.11 |
www.google.com url을 검색하면 일어나는 일 (0) | 2021.12.06 |
Tistory 블로그 글 쓰면 자동으로 GitHub에 올리기 (0) | 2021.11.06 |
마크다운(Markdown) 문법 정리 (0) | 2021.07.15 |