본문 바로가기
  • 개발공부 및 일상적인 내용을 작성하는 블로그 입니다.
부트캠프/CS지식 추가강의

WEB CS 기초 - section 2 URI 와 웹 브라우저 요청 흐름

by 방구석 취준생 2026. 3. 15.

* 해당 글은 멋사 부트캠프 CS 기초 추가강의 내용 정리글입니다.

https://bootcamp.likelion.net/school/kdt-backendj-21th

 

백엔드 부트캠프 21기: Java : 멋사 부트캠프

실전 스킬 기반 백엔드 개발자 취업 완벽 대비 교육

bootcamp.likelion.net

 

 

URI (Uniform Resource Identifier)

URI, URL, URN 은 각각 뭐가 어떻게 다를까?

  •  URI 는 로케이터(Locator)m, 이름(Name) 등을 포함하는 개념이다.
  • URL 와 URN 은 URI 라는 가장 큰 개념에서 시작한다. 여기서 URI 는 리소스를 식별하는 식별자의 역할을 한다.
  • 식별하는 방법은 크게 두 가지가 있는데, 첫번째는 URL(Resource Locator), 즉 리소스의 위치를 나타내는 정보이다.
  • 두번째는 URN(Resource Name), 즉 리소스의 이름을 나타내는 정보이다.
  • URI 개념안에 URL(Resource Locator), URN(Resource Name) 개념이 포함되어 존재한다.

* URI 의 단어 뜻

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

 

일반적으로 URL과 URN은 다음과 같은 구조로 되어있다.

URL(Resource Locator)
foo://example.com:8042/over/there?name=ferret#nose

URN(Resource Name)
urn:exampleLanimal:ferret:nose

scheme : 
- foo (URL)
- urn (URN)

authority + path :
- example.com:8042(URL : authority)
- /over/there (URL : path)
- example:animal:ferret:nose (URN : authority + path)

query :
- ?name=ferret (URL)

fragment :
- #nose (URL)

 

* URL, URN 의 단어 뜻

  • URL : 리소스가 있는 위치를 지정(Locator)
  • URN : 리소스에 이름을 부여(Name)
  • 위치는 변할 수 있지만 이름은 변하지 않는다.
  • URN 예시 -> urn : isbn : 8960777331 (어떤 책의 isbn URN)
  • URN 을 활용하여 이름만으로 실제 리소스를 찾을 수 있는 방법은 보편화 되어있지 않다.
  • 앞으로 URI 를 URL 과 비슷한 의미로 이해하자.

URL 을 분석해보자.

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

 

scheme

  • 주로 프로토콜을 사용한다. (프로토콜 : 어떤 방식으로 자원에 접근할 것인가 하는 약속 규칙)
  • 예시) http, https, ftp 등
  • http는 80 포트, https 는 443 포트를 주로 사용한다. 포트번호는 생략 가능하다.
  • https 는 http 에 보안이 추가된 방식이다. (HTTP Secure)

userinfo

  • URL 에 사용자 정보를 포함해서 인증하며, 거의 사용하지 않는다.

 

host

  • 호스트 명을 의미한다.
  • 도메인 명 또는 IP 주소를 직접 사용가능하다. (www.google.com)

port

  • 접속하는 포트 번호를 의미한다.
  • 일반적으로는 생략하며, 생략 시 http 는 80, https 는 443 이다.

path

  • 리소스 경로(path) 를 의미하며, 계층적인 구조이다.
  • 예시 : /home/file1.jpg, /members, /members/100, /items/iphone12

query

  • key=value 형태이다.
  • ? 로 시작하며, &로 쿼리 추가가 가능하다. (?keyA=valueA&keyB=valueB)
  • query parameter, query string 등으로 불린다. 웹 서버에 제공하는 파라미터이며 문자.

fragment

  • html 내부 북마크 등에 사용한다.
  • 서버에 전송하는 정보는 아니다.

 

웹 브라우저 요청 흐름

 

  1. URL 을 통해 접속 요청을 보낸다.
  2. URL에 적혀있는 도메인을 이용하여 DNS 서버를 조회한다. 이를 통해 도메인과 연결되어 있는 IP 주소를 찾게된다.
    1. 포트 번호의 경우 생략되어 있어도 프로토콜이 무엇인지에 따라 알 수 있다.
  3. IP 정보와 포트 번호를 알아내고 나면 HTTP 요청 메세지를 생성한다.(웹 브라우저가 HTTP 메세지 생성)
  4. HTTP 메세지가 생성되면 애플리케이션 상에서 socket 라이브러리를 통해 클라이언트-서버간 TCP 3 way handshake 를 통해 TCP/IP 연결을 한 다음 데이터를 OS 계층에 전달해준다.
  5. OS 계층에서는 URL 을 통해 알아낸 TCP/IP 정보(IP/Port) 를 전달하고자 하는 패킷에 덧씌운다.
  6. 이후로는 기존의 데이터 패킷 전달과정을 거쳐 클라이언트에서 서버로 데이터가 전달된다.(생성된 패킷에서 전달되는 메세지 데이터가 바로 이때 생성된 HTTP 메세지에 해당된다.)
  7. 서버에서 데이터 패킷을 받은 이후엔, 서버 측에서 클라이언트 측으로 HTTP 응답 메세지를 보낸다.(HTML 형식)
  8. 클라이언트에서 HTTP 응답 메세지를 받고 나면 웹 브라우저에서는 HTML 형식으로 넘어온 응답 메세지를 랜더링하여 최종적으로 화면을 출력하게 된다.
요약 : URL 입력 -> DNS 서버에서 도메인 조회하여 IP 주소 검색 -> HTTP 요청 메세지 생성 -> TCP/IP 연결 (TCP 3 way handshake) -> OS 에서 데이터 패킷 생성(TCP/IP 정보 + HTTP 요청 메세지) -> 서버로 HTTP 요청 전송 -> 클라이언트로 HTTP 응답 반환(HTML) -> 브라우저에서 화면 랜더링