[HTTP] URI, URL, URN이 무엇인가?

Yujeong·2023년 11월 9일
0
post-thumbnail

모든 개발자를 위한 HTTP 웹 기본 지식 강의 수강 후, 정리한 글입니다.

목차

  1. URI/URL/URN
  2. URI와 URL 차이
  3. URL
  4. 웹 브라우저 요청 흐름

1. URI, URL, URN

  • URI: Uniform Resource Identifier
  • URL: Uniform Resource Locator
  • URN: Uniform Resource Name

URN은 "홍길동"처럼 자원의 "이름"을 의미하고, URL은 "홍길동이 사는 주소"처럼 "위치"를 의미한다. 이 모든 것을 포함하고 있는 것이 URI이다.

URI

  • Uniform: 리소스를 식별하는 통일된 방식
  • Resource: 자원, URI로 식별할 수 있는 모든 것(제한 없음)
  • Identifier: 다른 항목과 구분하는 데 필요한 정보

URL

  • Uniform: 리소스를 식별하는 통일된 방식
  • Resource: 자원, URI로 식별할 수 있는 모든 것(제한 없음)
  • Locator: 리소스가 있는 위치를 지정

URN

  • Uniform: 리소스를 식별하는 통일된 방식
  • Resource: 자원, URI로 식별할 수 있는 모든 것(제한 없음)
  • Name: 리소스에 이름을 부여
    예시) 책의 ISBN - urn:isbn:9788966261208

위치는 변할 수 있지만, 이름은 변하지 않는다.

2. URL

scheme://[userinfo@]host:[:port][/path][?query][#fragment]
https://www.google.com:443/search/q=hello&hl=ko

  • userinfo@: 사용자 정보, 거의 사용하지 않음
  • https: 프로토콜(protocol)
  • www.google.com: 호스트명(host name)
  • 443: 포트번호(port number)
  • /search: 패스(path)
  • q=hello&hl=ko: 쿼리 파라미터(query parameter)

Scheme

  • 프로토콜로 자원을 접근하는 방법
  • http, https, mailto, ftp 등

Path

  • 리소스 경로
  • 계층적 구조
    예시 1) /items
    예시 2) /items/devices
    예시 3) /items/devices/iphone14

Query

  • 웹 서버에 제공하는 파라미터, 문자 형태
  • key=value 형태
  • ?로 시작
  • &으로 추가

Fragment

  • html 내부 북마크에 사용
  • 서버에 전송하는 정보 아님
    예시) https://docs.spring.io/spring-boot/docs/current/reference/html/getting-started.html#getting-started-introducing-spring-boot

🗒️ 프로토콜: 어떤 방식으로 자원에 접근할 것인가 하는 약속/규칙
🗒️ 포트번호는 생략 가능

3. URI와 URL 차이

URN 이름만으로 실제 리소스를 찾을 수 있는 방법이 보편화되어있지 않아서 URI/URL을 사용한다. URI는 식별자이고 URL은 위치인데, 이것들의 차이가 무엇일까?

예시 1) 다음은 URI이자 URL이다.
https://leporem.art/images/logo.png

예시 2) URI지만 URL은 아니다.
URI: https://leporem.art/users?sessionId=123456
URL: https://leporem.art/

예시 3) 같은 URL, 다른 URI
https://leporem.art/users?sessionId=123456
https://leporem.art/users?sessionId=987654

4. 웹 브라우저 요청 흐름


참고
https://helpcenter.trendmicro.com/en-us/article/tmka-18277
https://velog.io/@jch9537/URI-URL

profile
공부 기록

0개의 댓글