URI ? / URL ? / URN ?
URI 내부에 URL, URN이 포함되어 있음
URL은 URI이지만, 모든 URI가 URL인 것은 아님
Uniform : 리소스를 식별하는 통일된 방식
Resource : URI로 식별이 가능한 모든 종류의 자원
Idenrifier : 다른 항목과 구분하는 데 필요한 정보
즉, 자원을 식별하기 위한 포괄적인 개념으로 URL과 URN 모두를 포함하는 상위 개념 !
"자원이 어디 있는지( URL )" 또는 "무엇인지( URN )"를 식별할 수 있게 해줌
Locator : 리소스가 있는 위치를 지정
즉, 자원의 위치를 알려주는 주소 ( 인터넷 상의 자원이 어디 있는지 알려주는 경로 )
프로토콜 + 경로 + 포트 등 포함되며, 사용자가 웹 브라우저에 입력하는 주소 대부분은 URL
Name : 리소스에 이름을 부여
위치는 변할 수 있지만 이름은 변하지 않음
URN이 이름으로 실제 리소스가 결과 나오는게 매핑 되어야 하는데 찾기가 어려움
즉, 자원의 고유 이름만을 식별 , 자원의 위치는 몰라도 이름으로만 구분할 수 있음
( DNS처럼 고정된 네임스페이스 )
URI : 통합 자원 식별자로서 인터넷 상의 모든 자원을 식별하는 문자열 체계
즉, URI는 무엇인지를 식별하는 고유한 이름
URL : 자원의 위치까지 포함한 URI
즉, 인터넷 상의 자원에 어떻게 접근할지 ( 주소 + 방법 )을 명시
+) URI의 하위 개념으로서 프로토콜 + 도메인 + 경로로 구성됨
즉, URI는 자원을 식별하는 고유한 식별자이고, URL은 그 자원이 어디에 있는지(위치)까지 알려주는 URI
https://www.google.com:443/search?q=hello&hl=ko
[ https://호스트명(사이트명)+포트+경로+쿼리 ] 형태로 거의 구성됨
/home/file1.jpg => home 이라는 경로에 file1.jpg가 있음을 의미
/members => 회원들에 대한 정보를 보여주는 경로
/members/100, /items/iphone12 => 100번의 회원의 정보, 아이템 중에 아이폰12 정보 경로
→ 리소스가 있는 경로이자 계층 구조로 이루어져 있음
key와 value 형태로 데이터가 들어가 있음?keyA=valueA&keyB=valueB
query는 ?로 시작하고 &로 추가적으로 query string를 입력한다. 숫자를 적어도 다 문자 형태로 넘긴다 해서 query string이라고 부름https://docs.spring.io/spring-boot/docs/current/reference/html/getting-
started.html#getting-started-introducing-spring-boot
HTML 내부에서 중간에 이동하고 싶을 때 북마크 등에 사용, 잘 사용하지 않고 서버에 전송하는 정보 아님웹 브라우저가 어떻게 동작을 할까 ?