웹 브라우저의 동작 방식
웹 브라우저는 일반적으로 다음과 같은 기능을 수행한다.
- 웹 페이지를 서버에 요청(request)하여 서버의 응답(response)을 웹 문서 형태로 받는다.
- 받은 웹 문서 (HTML, CSS 등)을 렌더링 하여 모니터 화면에 웹 페이지를 표시한다.
1. 서버와 클라이언트 구조
클라이언트(스마트폰, 데스크탑 등 서비스를 사용하는 기기 또는 사용자)가 요청을 보내면 서버(서비스를 제공)가 응답하는 동작 방식을 가지고 있다. 이 구조를 따르는 대표적인 예시로 웹 서비스가 있다.
- 클라이언트는 서버로 요청을 보낸 뒤 응답을 받으면 서버의 응답을 처리하여 화면에 출력할 수 있도록 한다.
- 서버는 클라이언트로 받은 요청을 처리해 응답을 전송한다.
2. HTML (HyperText Markup Language)
HTML은 웹 문서를 작성하기 위해 사용하는 프로그래밍 언어
HTML 중 M이 의미하는 마크업은 웹 문서가 모니터 화면에서 보이는 형태를 결정하는 구조를 말한다.
3. HTTP (HyperText Transfer Protocol)
하이퍼텍스트를 전송하기 위해 개발된 프로토콜로, 웹 페이지를 요청하고 전송받기 위한 기본적인 방법을 제공하여 클라이언트와 서버 간 통신을 가능하게 해 준다.
클라이언트는 요청의 목적에 따라 적절한 HTTP 메서드를 사용하게 된다.
HTTP 메서드 | 설명 | 사용 예시 |
GET | 데이터 조회를 요청한다. | 특정 페이지 접속, 정보 검색 |
POST | 데이터 생성을 요청한다. | 회원가입, 글쓰기 |
PUT | 데이터 수정을 요청한다. | 회원 정보 수정 |
DELETE | 데이터 삭제를 요청한다. | 회원 정보 삭제 |
예를 들어, 웹 사이트에 접속하면 기본적으로 GET 방식으로 호출을 진행한다.
개발자 도구의 Header탭 내 상태 코드를 통해 요청에 대한 결과를 확인할 수 있다. (200 - 요청 성공, 400 - 서버 요청을 실패)
https://developer.mozilla.org/ko/docs/Web/HTTP/Status
웹 브라우저의 주소 표시줄에 URL(Uniform Resource Locator)을 입력한 뒤 접속을 시도할 때 URL 앞에 http:// 처럼 프로토콜 명이 붙어 있게 된다. 그래서 작성한 URL과 일치하는 웹 서버에 HTTP를 통하여 접속할 수 있게 된다. 이러한 방식으로 링크를 타고 수많은 페이지를 이동할 수 있다.
HTTP는 기본적으로 상태를 저장하지 않는다. 클라이언트가 응답을 받게 되면 연결이 끊어져 이후 포스팅 할 세션이라는 기능을 사용해 상태 정보를 저장하기도 한다.
4. DNS와 TCP / IP
웹 페이지에 접속하기 위해 사용자가 URL을 입력하면 DNS(Domain Name System)가 해당 도메인 이름을 IP 주소로 변환한다. 인터넷 상에서 컴퓨터는 IP 주소를 통해 서로를 식별하기 때문이다. 여기서 DNS서버는 해당 도메인 이름에 매핑된 IP주소를 찾아 사용자의 요청을 해당 서버로 전달한다.
TCP / IP (Transmission Control Protocol / Internet Protocol)는 인터넷에서 데이터를 전송하기 위한 기본 프로토콜 스위트이다. TCP는 데이터 전송 과정에서 신뢰성을 보장하며, IP는 데이터 패킷을 목적지까지 전달한다.
5. 웹 페이지 요청과 응답 과정
- 사용자가 웹 페이지에 접속하려 할 때, 브라우저는 먼저 DNS 조회를 통해 해당 웹 사이트의 IP 주소를 찾는다.
- IP 주소를 통해 서버에 도달한 요청은 TCP 연결을 통해 전송된다.
- 서버는 클라이언트의 요청을 받고, 요청된 웹 페이지를 찾아 클라이언트에게 전송한다. 이때 HTTP 프로토콜을 통해 데이터가 전송된다.
- 클라이언트는 서버로부터 받는 데이터를 웹 페이지로 렌더링 한다. 이 과정에서 HTML, CSS, JS 등의 웹 기술이 사용된다.