![](https://velog.velcdn.com/images/dlzlqlzl/post/61e77648-dc0a-42e7-bf9b-d6012527d7ca/image.png)
Resource - 자원, URI로 실별할 수 있는 모든 것(제한 없음)
Identifier - 다른 항목과 구분하는데 필요한 정보
URI는 자원의 위치를 나타내는 URL, 자원의 이름을 나타내는 URN 을 통칭 합니다.
URL ,URN
URL - Locator: 리소스가 있는 위치를 지정
URN - Name: 리소스에 이름을 부여
URL(위치)는 변할 수 있지만, URN(이름)은 변하지 않습니다.
변하지 않는 URN이 더 좋아보이지만 URN 이름만으로 실제 리로스를 찾을 수 있는 방법이 보편화 되지 않아 잘 사용하지 않습니다.
URL 분석
- scheme://[userinfo@]host[:port][/path][?query][#fragment]
- [ https://www.google.com:443/search?q=hello&hl=ko ]
scheme
- 주로 프로토콜을 사용
- 프로토콜 : 어떤 방식으로 자원에 접근할 것인가 하는 약속
- http는 80포트, https 는 443 포트를 기본적으로 사용하기에 포트 생략 가능
userinfo@
- URL에 사용자 정보를 포함해서 인증
- 거의 사용하지 않음
host
- 호스트 명
- 도메인명 또는 IP 주소를 직접 사용
- 도메인명을 입력하면 DNS가 도메인에 해당하는 IP에 요청을 보냄
port
- 접속 포트
- 일반적으로 생략, 생략시 http는 80, https는 443
path
- 리소스 경로, 계층적 구조
- 디렉터리와 비슷한 형태로 생김
- /home/file.jpg
- /members
query
- key=value 형태
- ?로 시작해서 &로 여러개 추가 가능
- query parameter, query string으로 불림
- spring MVC 에서는 @RequestParam으로 해당 쿼리 파라미터 값을 받아올 수 있음
fragment