[HTTP 웹 기본 지식] 1. 인터넷 네트워크, URI와 웹 브라우저 요청 흐름

건우·2025년 12월 5일

CS / 네트워크

목록 보기
1/6
post-thumbnail

1. 인터넷 통신

인터넷 통신은 결국
멀리 떨어진 컴퓨터끼리 데이터를 주고받는 과정이다.

구조는 단순하다.

요청(Request) → 응답(Response)

편지처럼 보내고, 전화처럼 묻고 답한다.
웹에서 버튼 하나 눌렀을 때도 이 구조는 그대로 유지된다.


2. IP (Internet Protocol)

IP는 인터넷에서 데이터를 전달하기 위한 기본 규칙이다.

IP의 역할

  • 목적지 IP 주소로 데이터 전달
  • 데이터를 패킷(Packet) 단위로 쪼개서 전송

패킷이란?

데이터를 작은 조각으로 나눈 통신 단위
(출발지 IP, 목적지 IP 같은 정보가 같이 들어간다)

⸻

IP의 한계

IP는 단순하다. 그래서 한계도 명확하다.

비연결성

상대 서버가 꺼져 있어도 그냥 보낸다.
→ 받는 쪽이 준비됐는지 모른다.

비신뢰성
  • 중간에 패킷이 사라지면?
  • 순서가 뒤죽박죽이면?

IP는 책임지지 않는다.

프로그램 구분 불가

같은 IP에서 여러 프로그램이 동시에 통신하면?
어디로 보내야 할지 구분하지 못한다.

그래서 TCP가 등장한다.


3. TCP vs UDP

인터넷 프로토콜 4계층

애플리케이션 계층 (HTTP, FTP 등)
전송 계층 (TCP, UDP)
인터넷 계층 (IP)
네트워크 인터페이스 계층

우리가 개발자로서 주로 다루는 건
-> HTTP (애플리케이션 계층)

그 아래에서 실제 전송을 책임지는 게
-> TCP / UDP

TCP (Transmission Control Protocol)

TCP는 한마디로
“믿을 수 있는 통신”

연결지향 (3-way handshake)
SYN → SYN+ACK → ACK

연결이 성립된 뒤에 데이터 전송 시작.

데이터 전달 보증

보냈으면 → 잘 받았는지 확인한다.

순서 보장

패킷 순서가 꼬이면 재전송 요청한다.

정리하면

  • 신뢰성 O
  • 대부분의 웹 통신은 TCP 기반

⸻

UDP

UDP는 TCP의 반대 느낌이다.

  • 연결 과정 없음
  • 전달 보증 없음
  • 순서 보장 없음

대신

  • 단순하다
  • 빠르다

그래서

  • 실시간 스트리밍
  • 게임
  • VoIP

같은 곳에서 사용된다.
-> 요즘 HTTP/3는 UDP 기반이다.


4. PORT

IP가 “건물 주소”라면
PORT는 “호수”다.

한 컴퓨터에서 여러 프로그램이 동시에 통신하려면
구분이 필요하다.

포트 범위

0 ~ 65535

잘 알려진 포트 (0~1023)

  • HTTP → 80
  • HTTPS → 443
  • FTP → 21
  • TELNET → 23

보통 개발할 때는 8080, 9090 이런 걸 많이 쓴다.


5. DNS

IP 주소는 사람이 기억하기 어렵다.

200.200.200.2

그래서 등장한 게 DNS.
도메인 → IP 변환 시스템이다.

예:

google.com → 142.xxx.xxx.xxx

전화번호부 같은 역할이다.


6. URI / URL / URN

개발하다 보면 헷갈리는 개념이다.

URI (Uniform Resource Identifier)

: 리소스를 식별하는 통합 방식

URI는 큰 개념이고
그 안에 URL, URN이 포함된다.

⸻

URL (Locator)

리소스의 위치

https://example.com:8080/items/1?type=book#detail

구성요소

scheme://host:port/path?query#fragment
  • scheme → http, https
  • host → 도메인
  • port → 생략 가능
  • path → 리소스 경로
  • query → ?key=value
  • fragment → # (서버로 안 감)

⸻

URN (Name)

리소스의 이름

urn:isbn:8060777331

위치와 무관한 고유 이름.

실무에선 거의 URL만 사용한다고 보면 된다.


7. 웹 브라우저 요청 흐름

브라우저에 주소 입력하면 무슨 일이 벌어질까?

HTTP 요청 메시지 생성

GET /search?q=hello HTTP/1.1
Host: www.google.com

TCP 연결

  • IP + PORT 기반 연결
  • 3-way handshake

데이터 전송

HTTP 메시지를 TCP/IP 패킷에 담아 보낸다.

서버 응답

HTTP/1.1 200 OK
Content-Type: text/html

HTML 데이터를 받아서 브라우저가 렌더링한다.

8. 정리

  • IP는 단순 전송
  • TCP는 신뢰성 보장
  • PORT는 프로그램 구분
  • DNS는 도메인 → IP 변환
  • URL은 리소스 위치
  • 브라우저는 결국 HTTP 메시지를 TCP 위에서 주고받는다

출처
모든 개발자를 위한 HTTP 웹 기본 지식 (김영한, 인프런, 2020)

0개의 댓글