본문 바로가기
Programming/Web

[WEB] URI / URL / URN

by prinha 2020. 7. 23.
반응형

 

 

들어가기전, URL의 구조 해부

http://www.smartchoice.co.kr:80/smc/smartreport/smarttalkview.do
?sm_Seq=1596&searchType=tc&searchKeyword=&pg=2

(출처: https://hihoyeho.tistory.com/entry/URL과-URN-그리고-URI [하이호예호])

(출처:https://velog.io/@pa324/%EA%B0%9C%EB%B0%9C%EC%83%81%EC%8B%9D-URI-URL-%EC%B0%A8%EC%9D%B4-%EC%A0%95%EB%A6%AC)

 

 

 http:  - 프로토콜(protocol)

-> Hyper Text Transfer Protocol

-> 정보를 교환할 때 필요한 약속으로 어떤 정보를 요청하는 것인지 미리 해석할 수 있음

-> http 이외에도 https, file, mailto, news 등등

-> http 프로토콜의 경우 브라우저의 UI에서 지원하기때문에 직접 입력하지않아도 자동 인식

 

 www  - 호스트(host)

-> 연결할 서버의 주소로 world wide web의 약자, 간단히 줄여서 web이라고 부름

-> www이외에도 여러 관리서버를 가지고 있을 경우 다른 이름 사용 (http://news.naver.com)

 

 smartchoice.co.kr  - 도메인(domain)

-> 네트워크상에 존재하는 위치(주소..?)

-> URL을 구성하는 가장 기본적인 요소

-> com / org / net / gov

-> 도메인은 [도메인 이름 or IP 주소] 중 하나로 표현 가능 (로컬 호스트에 접근하고자 할 때)

      ① http://localhost/

      ② http://127.0.0.1/

 

 :80  - 포트(port)

-> 포트번호는 콜론(:)으로 구분하며, 80포트의 경우 컴퓨터의 TCP/IP 연결이 기본포트로 보통은 생략이 기본

-> 정상적으로 찾아가는 것으로 봐서 daum은 기본포트를 80으로 사용 http://www.daum.net:80

 

 /smc/smartreport/smarttalkview.do  - 경로(path)

-> 파일 이름 or 디렉토리 이름

-> 너무 많은 정보가 있는 웹사이트의 경우 페이지나 디렉토리별로

     분류해서 관리하지않으면 뒤범벅이 되기때문에 그룹화하여 계층별로 관리하는 것이 일반적이다.

 

 ?sm_Seq=1596&searchType=tc&searchKeyword=&pg=2  - 쿼리(query)

-> 해당 페이지 구성에 필요한 파라미터들로

    요즘은 많은 웹사이트들이 RESTFul URL 구조를 많이 사용하며 위와 같은 쿼리를 표현하지 않는 추세


1. URL (Uniform Resource Locator) - 자원

 - resource의 위치를 나타내는 것

 - 흔히 알고 있는 웹사이트 주소, FTP주소, mail주소도 포함

 - 예전에는 URL이 가리키는게 파일 소스였으나 요즘은 Rewrite 등의 아파치 톰캣 등의 핸들러때문제 자원이라고 부름

 - 웹사이트 주소가 요청하는 파일이라기보다는 구분자로 본다.

 - 웹 상에 서비스를 제공하는 각 서버들에 있는 파일의 위치를 표시하기 위한 것

 - http://blong.com/work/test.pdf 는 blog.com서버에서 work폴더안의 test.pdf를 요청

 

2. URI (Uniform Resource Identifier) - 통합 자원 식별자

 - resource를 가리키는 식별자 -> URL과 URN도 리소스를 가리키는 말이나 URI는 더 넓은 의미

 - 모든 정보의 리소스를 가리키는 식별자로 두목격

 - 인터넷에 있는 자원을 나타내는 유일한 주소

 - http://test.com/test.pdf?docid=111 이라는 주소는 URI이지만 URL은 아니다.
    http://test.com/test.pdf 까지만 URL임(주소의 위치)

    docid=111이라는 쿼리스트링의 값에 따라 결과가 달라지게됨, 따라서 식별자 역할을 하고 있음

 - http://test.com/test.pdf?docid=111http://test.com/test.pdf?docid=112는같은 URL을 가지고 다른 URI를 가짐

 

3. URN (Uniform Resource Name)

 - resource의 이름을 나타내는 것

 - URL의 경우 위치를 기반으로 두고있기때문에 해당 위치에 있는 자원이 없어지거나 할 경우 검색 수단으로써의 기능 상실

    이를 보안하고자 만들어진 것이 URN이며 URN은 위치에 의존하는 것이 아닌 리소스의 '이름' 그 자체를 지시하는 것

 - URL이 http와 같은 프로토콜로 시작한다면, URN의 경우 urn으로 시작하여 콜론(:)으로 구분하여 표현한다.

    urn : isbn : 9788982814471 

 

String uri = request.getRequestURI();
String conPath = request.getContextPath();
String com = uri.substring(conPath.length());
				
// url : 주소전체 -> http://localhost:8080/coding02/list.do
// uri : 인터넷 기본 주소 제외 -> /coding02/list.do
// conPath(= ContextPath) : 파일명or프로젝트명 -> coding02
// com = uri.substring(conPath.length()) : 프로젝트명 뒤의 주소 -> list.do

// console에서 출력해보기
System.out.println(uri); // /coding02/*.do
System.out.println(conPath); // /coding02 
System.out.println(com); // /*.do

 

 

 

▶ URI에는 URN, URL이 포함되어 있고, URL은 URI이지만 URI는 URL이 아니다.

▶ URL은 인터넷 상의 자원 위치를 나타냄

▶ URI는 인터넷 상의 자원을 식별하기 위한 문자열의 구성

URI / URN URL
blog.com/page.html http://blog.com/page.html

 

 

반응형