URI와 Web Browser

bolee·2022년 3월 10일
0

HTTP 기초

목록 보기
2/4

URI

(리소스 통합 식별 / Uniform Resource Identifier)

URI는 리소스 통합 식별을 위한 것으로 익숙한 URL에 비해 생소하게 느껴질 수 있다.

먼저 URI은 표준 스텍의 내용을 살펴보면 아래와 같이 설명이 쓰여져 있다.

URI는 로케이터(locator), 이름(name) 또는 둘 다 추가로 분류될 수 있다.
(https://www.ietf.org/rfc/rfc3986.txt)

이는 URL과 후에 간단하게 언급할 URN은 포함한다는 뜻과 같다.

즉, URL과 URN는 모두 리소스 통합 식별을 위한 방법이며 둘의 용법은 아래와 같이 소개되어 있다.

URI의 단어 뜻

URI는 위에서 말했듯 리소스 통합 식별을 뜻하는데, 하나하나 풀어 보면 아래와 같다.

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

여기에서 파생된 것들이 URL, URN이다.

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

URL, URN의 단어 뜻

URL과 URN는 단어가 URI와 Identifier만 다르다는 것을 알 수 있다. 즉,

  • URL - Locator: 리소스가 있는 위치를 저장
  • URN - Name: 리소스에 이름을 부여 ex) urn:isbn:8960777331

평소 URL는 익숙하지만 URN의 경우 다소 생소할 것이다. 왜냐하면 URN의 경우 즉, 이름만으로 실제 리소스를 찾을 수 있는 방법이 보편화 되어 있지 않기 때문이다.

또한 위치는 변할 수 없지만 이름은 그렇지 않기 때문에 수정에 용이하다는 장점도 존재한다.

이러한 이유로 URL이 거의 대부분 사용되며 따라서 사실상 URI와 URL은 거의 같은 의미로 사용된다. 여기에서도 앞으로 URI를 URL과 같은 의미로 얘기하겠다.

URL 전체 문법

URL 또한 사용하는데 문법이 존재하는 데 전체적인 문법은 아래와 예시를 참고하면 되고, 아래에서 하나하나 설명할 것이다.

전체 문법

  • scheme://[userinfo@]host[:port][/path][?query][#fragment]

예시

URL - scheme

전체 문법

  • scheme://[userinfo@]host[:port][/path][?query][#fragment]

예시

  • https://www.google.com:443/search?q=hello&hl=ko

주로 프로토콜이 사용되며, 프로토콜은 어떤 방식으로 자원에 접근할 것인가의 약속 및 규칙이다. 예를 들어 http, https, ftp 등등 여러가지가 있다.

프로토콜이 사용하는 접속 포트를 함께 써주어야 하는데, 주로 많이 사용되는 http는 80번 포트, https는 443번 포트를 주로 사용한다. http 또는 https를 사용할 경우 포트는 생략이 가능하다.

참고로 https는 http에 보안을 추가한 프로토콜이다. (HTTP Secure)

URL - userinfo

전체 문법

  • scheme://[userinfo@]host[:port][/path][?query][#fragment]

예시

URL에 사용자 정보를 포함하여 인증을 진행할 때 사용된다.
그러나 거의 사용하지는 않는다.

URL - host

전체 문법

  • scheme://[userinfo@]host[:port][/path][?query][#fragment]

예시

호스트명을 말하며, 이는 도메인명 또는 IP 주소로도 직접 사용 가능하다.

URL - PORT

전체 문법

  • scheme://[userinfo@]host[:port][/path][?query][#fragment]

예시

접속 포트를 적어주며, 일반적으로는 생략된다.
일반적으로 생략시 http는 80번, https는 443번 포트이다.

URL - path

전체 문법

  • scheme://[userinfo@]host[:port][/path][?query][#fragment]

예시

리소스 경로(path)를 가르키며, 이는 계층적 구조로 되어있다.

  • ex)
    • /home/file1.jpg
    • /members
    • /members/100, items/iphone12

URL - query

전체 문법

  • scheme://[userinfo@]host[:port][/path][?query][#fragment]

예시

query parameter, query string 등으로 불린다. 이는 웹서버에 제공하는 파라미터이며, 문자(string) 형태이다.

key=value 형태로 되어있으며, ?로 시작하여 &로 추가 기능을 추가할 수 있다.
ex) ?keyA=valueA&keyB=valueB

URL - fragment

전체 문법

  • scheme://[userinfo@]host[:port][/path][?query][#fragment]

예시

html 내부 북마크 등에 사용되는 것으로 서버에 전송하는 정보는 아니다.
잘 사용하지는 않는다.

웹 브라우저 요청 흐름

여기에서는 전체적인 웹 브라우저 요청 흐름을 그림으로 살펴보도록 하자

참고 강의 : "김영한 강사님", 인프런 모든 개발자를 위한 HTTP 웹 기본 지식

  • 문제 발생 시 삭제 조치 하도록 하겠습니다.

0개의 댓글