URI, URL / URI 설계 원칙 RFC-3986
URI : Uniform Resource Identifier
- 인터넷 상에서 특정 자원을 나타내는 주소 값. ( 유일한 값 )
URL : Uniform Resource Locator
- 인터넷 상에서의 특정 자원이 어디에 위치하는지 식별하는 주소
URL은 URI의 하위개념이다.
URL 분석
scheme:// [userinfo@] host[:port][/path][?query][#fragment]
ex ) https://www.google.com:443/search?q=hello&hl=ko
1. https://
scheme : 프로토콜 (어떤 방식으로 자원에 접근할 것인가 하는 약속 규칙)
2. [userInfo@]
[userInfo@] 는 거의 사용하지 않는다.
(URL에 사용자 정보를 포함해서 인증해야 할때 사용)
3. www.google.com
host : 호스트 명 (도메인명 또는 IP 주소를 직접 사용 가능)
4. :443
port : 접속 포트 ( 일반적으로 생략, 생략 시 http는 80, https는 443 )
5. /search
path : 리소스 경로, 계층적 구조로 되어있다.
6. ?q=hello&hl=ko
query(query parameter, query string) : key = value 형태
?로 시작하고, &로 여러개의 쿼리를 추가할 수 있다.
7. [#fragment]
잘 사용하지 않음.
(html 내부 북마크 등에서 사용한다.)
URI 설계 원칙 ( RFC-3986 )
- 슬래쉬 구분자( / )는 계층 관계를 나타내는데 사용한다.
- 하이픈( - )은 URI 가독성을 높이는데 사용한다.
- URI 경로에는 소문자가 적합하다.
- URI의 마지막 문자로 ( / )는 사용하지 않는다.
- 밑줄( _ )은 사용하지 않는다.
- URI에 파일 확장자를 포함하지 않는다. ( .pdf / .docs 등 )
- 특정 프로그래밍 언어에 의존적인 확장자를 사용하지 않는다.
- 구현에 의존적인 경로를 사용하지 않는다.
- 세션 ID를 포함하지 않는다.
- 프로그래밍 언어의 Method명을 이용하지 않는다.
- 명사에 단수형보다는 복수형을 사용한다. 특히 컬렉션에 대한 표현은 복수로 사용
- 컨트롤러 이름으로는 동사, 동사구를 사용한다.
- 경로 부분 중 변하는 부분은 유일한 값으로 대체한다.
- CRUD 기능을 나타내는 것은 URI에 사용하지 않는다.
- API에 있어서 서브 도메인은 일관성 있게 사용해야 한다.
- 클라이언트 개발자 포탈 서브 도메인은 일관성 있게 만든다.
- URI Query Parameter 디자인
- URI 쿼리 부분으로 컬렉션 경로에 대해서 필터링 할 수 있다.
- URI 쿼리는 컬렉션의 결과를 페이지로 구분하여 나타내는데 사용한다.
반응형
'컴퓨터 공학 > Web & Network' 카테고리의 다른 글
[Web/HTTP] Web의 3요소와 HTTP 프로토콜, 특징 (0) | 2023.07.19 |
---|---|
[Web] 쿠키(Cookie)와 세션(Session) (0) | 2023.07.18 |
[Web/HTTP] HTTP 상태 코드(Status Code) (0) | 2023.07.18 |
[Web/HTTP] HTTP Methods (0) | 2023.07.18 |
[Web/HTTP] HTTP 메시지(요청, 응답) 구조 (0) | 2023.07.17 |