컴퓨터 공학/Web & Network

[Web] URI, URL / URI 설계 원칙 RFC-3986

HSRyuuu 2023. 7. 7. 00:08

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 쿼리는 컬렉션의 결과를 페이지로 구분하여 나타내는데 사용한다.
반응형