Skip to content
Ikhwan Jang edited this page Jan 13, 2026 · 1 revision

웹과 HTTP

2주차에는 HTTP에 대해서 알아보았다.

1. 웹브라우저에 naver.com을 입력하면 어떤 일이 벌어지는가?

  • naver.com 이라는 실제 서비스 도메인이 사용되었으므로, 네이버 같은 서비스 회사에서 자사 서비스에 접속하기까지 벌어지는 과정을 설명해보라는 의미다.
  • 웹브라우저에서 특정 서비스의 도메인네임을 입력하면 다음과 같은 과정이 벌어진다.
  1. 브라우저는 로컬 캐시에서 도메인 네임에 해당하는 IP주소가 있는지 확인한다.

로컬 캐시

DNS 정보가 캐싱되는 공간은 브라우저, OS가 있다고 한다.

  1. 만약 로컬 캐시에서 IP주소를 못 찾았다면, 우리는 ISP의 로컬 DNS 서버에 DNS 쿼리를 보낸다.
  • DNS 쿼리 방식에는 재귀적 방식과 반복적 방식이 있다. 로컬 DNS 서버를 찾을 때는 재귀적 방식을 사용한다고 한다. (by 제미나이)
  1. 로컬 DNS 서버는 DNS 계층에게 DNS 질의를 보낸다. DNS 계층의 루트, TLD, Authorative 순으로 질의하여서 최종 IP를 얻고 로컬 DNS에 응답한다.
  • DNS 쿼리 방식 중에서 반복적 질의를 수행한다고 한다. (by 제미나이)
  1. 로컬 DNS는 IP 주소를 캐싱하고 브라우저에 응답한다.
  2. 브라우저는 받은 IP주소를 통해서 웹서버에 HTTP로 접속한다. 이때 브라우저는 HTTP 접속을 위해서 TCP 3 way handshaking을 수행한다.

TCP 3 way handshaking

TCP 연결을 위해서 필요한 작업이다. 요청자가 SYN을 보내면, 수신자는 ACK + SYN을 보내고, 최종적으로 요청자가 ACK를 보내서 연결이 생성된다.

  1. 브라우저는 HTTP를 통해서 웹페이지를 요청해서 수신한다.
  2. 서버는 내부 로직을 돌리고 웹페이지를 응답한다.
  3. 브라우저는 웹페이지를 렌더링한다.

DNS (Domain Name 'System') (서비스 아님에 주의)

  • 쉽게 말하면 도메인 네임을 IP주소로 변환하기 위한 시스템이다.
  • 재귀적 쿼리와 반복적 쿼리가 있다.
    • 재귀적 쿼리 : 클라이언트 - 로컬 DNS 서버 사이에 사용
    • 반복적 쿼리 : 로컬 DNS 서버 - DNS 계층구조 사이에 사용

HTTP의 특정

  • HTTP의 4대 특징을 말하라고 한다면, connectionless, stateless, request-response 구조, client-server 방식이라는 점이다.
  1. connectionless
  • 원래 초기 HTTP는 한번 요청에 대해서 응답을 하면 연결을 끊어버린다. 이렇게 하면 더 많은 요청을 처리할 수 있을 것이라 기대한 것이다.

그럼 Keep-Alive 뭔가요?

근데 HTTP 1.1 버전에서는 Keep-Alive 헤더가 추가되어서 연결을 일정 타임아웃 동안 유지할 수 있게 했다. TCP 연결이라는 것이 오버헤드가 있는 편이라 연결하는 게 낫다면 유지하는 선택지를 제공한 것으로 보인다.

Clone this wiki locally