브라우저는 어떻게 서버와 이야기할까?
주소를 입력하거나, 링크를 누르거나.
웹사이트에 들어가려면 가장 먼저 하는 건 클릭이다.
우리가 뭔가 행동을 하면 그 순간 브라우저가 서버에 요청을 보낸다.
그러면 서버가 응답을 준다. 웹 통신은 이 단순한 흐름으로 시작된다.
“요청(Request) ➡️ 응답(Response)” 웹은 이렇게 움직인다.
사실 요청 하나가 날아갈 때도 여러 기술이 얽혀 있다.
예를 들어 영상 하나를 클릭하면, 그건 단순히 “이거 보여줘”라는 요청이다.
브라우저는 그 요청을 만들어서 서버로 보낸다.
서버는 요청을 확인하고, 거기에 맞는 데이터를 응답으로 내려준다.
우리가 화면으로 보는 결과는 그렇게 주고 받은 데이터의 끝이다.
웹에서는 역할이 분명하다.
클라이언트와 서버 관계
역할 | 설명 |
---|---|
클라이언트 | 요청을 보내는 쪽 (브라우저, 사용자) |
서버 | 요청을 받고 응답을 보내는 쪽 |
기본 흐름 | 요청이 먼저 ➡️ 응답이 나중 |
관계 | 서버는 요청이 있어야만 동작함 |
HTTP 구조
구분 | 설명 |
---|---|
HTTP란? | 웹에서 요청과 응답을 주고받기 위한 통신 규칙(프로토콜) |
기반 전송 방식 | HTTP는 TCP 위에서 작동함 |
TCP의 특징 | 신뢰성 있는 전송을 보장함 |
신뢰성 의미 | 요청은 반드시 서버에 도달하며, 전송 중 손실되지 않음 |
그런데 여기서 한 가지 문제가 생긴다.
서버가 너무 바쁘면, 도착한 요청을 바로 처리하지 못한다.
응답이 느려진다.
그때 사용자는 “어? 안 됐나?” 싶어 다시 누르게 된다.
그럼 같은 요청이 여러 번 서버에 도착한다.
서버 입장에선 처리할 일이 계속 쌓이는 셈이다.
그래서 웹 서버는 요청을 받은 순서대로 차곡차곡 처리해 나간다.
URL의 의미
주소창에 입력하는 URL은
사실상 “이 파일을 보여줘”라는 요청이다.
예를 들어 http://127.0.0.1:80/index.html
이라면,
-
127.0.0.1
은 서버의 IP 주소,
-
80
은 통신할 포트 번호,
-
index.html
은 요청할 실제 파일 이름
브라우저는 이 URL을 내부적으로 IP 기반 요청으로 바꾸어 서버에 전달하고,
서버는 그에 맞는 HTML 파일을 응답으로 내려준다.
URL 구성 요소
구성 요소 | 설명 | 예시 |
---|---|---|
프로토콜 | 통신 방식 (보통 HTTP/HTTPS) | https:// |
도메인 또는 IP | 서버의 주소 | example.com , 127.0.0.1 |
포트 번호 | 통신 창구 (기본값 80 또는 443) | :80 (생략 가능) |
경로 및 파일명 | 요청할 리소스 위치 | /index.html |
URL과 URI의 구분
주소창에 입력하는 웹 주소는 대부분 URL이다.
하지만 그 기반 개념인 URI와 어떻게 다른지 궁금할 수 있다.
아래 표처럼 구분하면 쉽게 이해된다.
항목 | URL | URI |
---|---|---|
개념 | 자원이 어디 있는지를 알려주는 주소 | 자원이 무엇인지를 식별하는 고유한 값 |
포함 관계 | URI의 하위 개념 | URL과 URN을 포함하는 상위 개념 |
예시 | https://example.com/index.html |
mailto:someone@example.com , URL 포함 |
사용 빈도 | 실제 브라우저 주소창에 자주 사용됨 | 프로그래밍, 시스템 내 자원 식별에 사용됨 |
즉, 우리가 웹에서 자주 다루는 주소는 대부분 URL이며,
이 URL은 URI라는 큰 틀 안에 포함된 하나의 방식이다.
웹페이지 기본 동작 흐름
단계 | 설명 |
---|---|
1 | 사용자가 URL 입력 |
2 | DNS를 통해 도메인이 IP로 변환됨 |
3 | 브라우저가 HTTP 요청을 서버로 전송 |
4 | 서버가 요청에 해당하는 파일을 응답함 |
5 | 브라우저가 응답받은 HTML을 화면에 출력함 |
HTTP vs HTTPS
웹에서 주고받는 데이터는 기본적으로 HTTP라는 규칙에 따라 전송된다.
그런데 HTTP 자체는 데이터를 암호화하지 않기 때문에,
공공장소나 외부 네트워크에서는 정보 유출 위험이 있다.
이 문제를 해결하기 위해 HTTPS가 사용된다.
HTTPS는 데이터를 암호화한 상태로 주고받기 때문에
중간에서 누군가가 내용을 가로채더라도 쉽게 해독할 수 없다.
특히 로그인, 결제처럼 중요한 정보를 다룰 땐
HTTPS가 적용된 사이트인지 반드시 확인해야 한다.
HTTP 와 HTTP 정리
항목 | HTTP | HTTPS |
---|---|---|
암호화 여부 | 없음 | 있음 (SSL/TLS 적용) |
보안 수준 | 낮음 | 높음 |
사용 용도 | 일반 콘텐츠 요청 | 로그인, 결제 등 민감한 정보 처리 |
URL 형태 | http:// 로 시작 |
https:// 로 시작 |
주소창 표시 | 없음 | 자물쇠 아이콘 표시됨 |
오늘을 마치며
웹 통신은 생각보다 단순한 구조 위에 세워져 있다.
사용자가 요청을 보내고, 서버가 응답을 준다.
이 흐름을 이해하면,
웹에서 어떤 데이터가 어떻게 생성되고 흐르는지
분석하는 눈이 조금 더 선명해진다.