uri는 Uniform Resource Identifier 통합 자원 식별자라는 뜻으로 인터넷에 있는 자원을 나타내는 유일한 주소이다. URI의 존재는 인터넷에서 요구되는 기본조건으로서 인터넷 프로토콜에 항상 붙어 다닌다.
URI의 하위개념으로 URL, URN 이 있다.
URL(Uniform Resource Locator)은 네트워크 상에서 자원이 어디 있는지를 알려주기 위한 규약이다. 즉, 웹 페이지를 찾기위한 주소를 말한다. 우리가 흔히 알고있는 인터넷 주소가 UR
이고 웹 사이트 주소로 알고 있지만, URL은 웹 사이트 주소뿐만 아니라 컴퓨터 네트워크상의 자원을 모두 나타낼 수 있다. 그 주소에 접속하려면 해당 URL에 맞는 프로토콜을 알아야 하고, 그와 동일한 프로토콜로 접속해야 한다.
URN은 콘텐츠를 이루는 한 리소스에 대해, 그 리소스의 위치에 영향 받지 않는 유일무이한 이름 역할을 한다. 이 위치 독립적인 URN은 리소스를 여기저기로 옮기더라도 문제없이 동작한다. 리소스가 그 이름을 변하지 않게 유지하는 한, 여러 종류의 네트워크 접속 프로토콜로 접근해도 문제없다. 예를 들어, 다음의 URN은 인터넷 표준 문서 'RFC 2141'가 어디에 있거나 상관없이 그것을 지칭하기 위해 사용할 수 있다.
URN: urn:ietf:rfc:2141
URI는 URL, URN을 포함하는 상위 개념이고 URL은 자원의 위치
를 알려주고 URN을 자원의 이름
을 알려준다. 위치는 변할 수 있지만, 이름은 변하지 않는다. 하지만 아직은 URN이름만으로 실제 리소스를 찾을 수 있는 방법이 보편화 되지 않았다. 그래서 현제는 URL을 많이 사용하고 있다.
URL을 분석해보자
위의 URL의 각 영역은 밑의 문법을 토대로 만들어졌다.
scheme://[userinfo@]host[:port][/path][?query][#fragment]
scheme: 프로토콜이 들어가는 부분(https)
프로토콜이란 어떤 방식으로 자원에 접근할 것인가를 정한 규칙(http, ftp)
userinfo: URL에 사용자정보를 포함해서 인증(거의 사용ㄴㄴ)
host: 호스트명(www.google.com)
port: 포트번호
http는 80 https는 443포트를 주로 사용(생략 가능)
path: 패스, 리소스의 경로와 구조(/search)
query parameter or query string: key=value의 형태, ?로 시작 &으로 추가 가능(?q=hello&hl=ko)
fragment: html내부 북마크 등에사용, 서버에 전송ㄴㄴ