* 해당 글은 멋사 부트캠프 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 내부 북마크 등에 사용한다.
- 서버에 전송하는 정보는 아니다.
웹 브라우저 요청 흐름
- URL 을 통해 접속 요청을 보낸다.
- URL에 적혀있는 도메인을 이용하여 DNS 서버를 조회한다. 이를 통해 도메인과 연결되어 있는 IP 주소를 찾게된다.
- 포트 번호의 경우 생략되어 있어도 프로토콜이 무엇인지에 따라 알 수 있다.
- IP 정보와 포트 번호를 알아내고 나면 HTTP 요청 메세지를 생성한다.(웹 브라우저가 HTTP 메세지 생성)
- HTTP 메세지가 생성되면 애플리케이션 상에서 socket 라이브러리를 통해 클라이언트-서버간 TCP 3 way handshake 를 통해 TCP/IP 연결을 한 다음 데이터를 OS 계층에 전달해준다.
- OS 계층에서는 URL 을 통해 알아낸 TCP/IP 정보(IP/Port) 를 전달하고자 하는 패킷에 덧씌운다.
- 이후로는 기존의 데이터 패킷 전달과정을 거쳐 클라이언트에서 서버로 데이터가 전달된다.(생성된 패킷에서 전달되는 메세지 데이터가 바로 이때 생성된 HTTP 메세지에 해당된다.)
- 서버에서 데이터 패킷을 받은 이후엔, 서버 측에서 클라이언트 측으로 HTTP 응답 메세지를 보낸다.(HTML 형식)
- 클라이언트에서 HTTP 응답 메세지를 받고 나면 웹 브라우저에서는 HTML 형식으로 넘어온 응답 메세지를 랜더링하여 최종적으로 화면을 출력하게 된다.
요약 : URL 입력 -> DNS 서버에서 도메인 조회하여 IP 주소 검색 -> HTTP 요청 메세지 생성 -> TCP/IP 연결 (TCP 3 way handshake) -> OS 에서 데이터 패킷 생성(TCP/IP 정보 + HTTP 요청 메세지) -> 서버로 HTTP 요청 전송 -> 클라이언트로 HTTP 응답 반환(HTML) -> 브라우저에서 화면 랜더링
'부트캠프 > CS지식 추가강의' 카테고리의 다른 글
| WEB CS 기초 - section 4 HTTP 메서드(2) (0) | 2026.03.24 |
|---|---|
| WEB CS 기초 - section 4 HTTP 메서드(1) (0) | 2026.03.19 |
| WEB CS 기초 - section 3 HTTP 기본 (0) | 2026.03.17 |
| WEB CS 기초 - section 1 인터넷 네트워크 (0) | 2026.03.11 |