Post

웹 기본개념 정리(1)

Http 개념

Http란 클라이언트와 서버가 서로 통신하는 방식을 표준화한 TCP/IP 기반 Application Layer Communication protocol 이다.

클라이언트는 서버에 개별 요청을 할 수 있으며 서버는 이를 처리하고 Response라는 응답을 한다.

이 때 클라이언트와 서버 사이에는 다양한 작업을 수행하고 게이트웨이나 케시 역할을 하는 프록시라고 불리는 수많은 엔티티가 존재한다. Http통신과정

프록시

웹 브라우저와 서버 사이에는 수많은 컴퓨터와 기계가 Http 메시지를 중계하며, application Layer에서 작동하는 것을 일반적으로 프록시라고 한다.

프록시 기능

1
2
3
4
5
1. 캐싱
2. 필터링
3. 로드 밸런싱
4. 인증
5. 로깅

DNS

DNS는 인터넷 리소스를 가져올 수 있도록 도메인 이름을 IP 주소로 변환하는 기능을 한다.

DNS recursor

DNS recursor는 웹 브라우저와 같은 Application을 통해 클라리언트 시스템으로부터 쿼리를 수신하도록 설계된 서버이다.
일반적으로 recoursor는 클라이언트의 DNS 쿼리를 만족시키기 위해 추가 요청을 수행하는 역할을 담당한다.

Root nameserver

Root nameserver는 사람이 읽을 수 있는 호스트 이름을 IP 주소로 변환하는 첫 번째 단계이며,
일반적으로는 더 구체적인 다른 위치에 대한 참조 역할을 한다.

TLD(top level domain) nameserver

특정 IP 주소 검색의 다음 단계이며 호스트 이름의 마지막 부분을 호스팅한다. ex) www.xx.xx.com -> com

Authoritative nameserver

요청된 record에 접근할 수 있는 경우 요청된 호스트 이름의 IP 주소를 초기에 요청을 수행한 DNS Recursor로 반환 한다.

DNS 조회 단계

DNS과정

1
2
3
4
5
6
7
8
9
10
1. 사용자가 웹브라우저에 'examle.com'을 입력하면 쿼리가 인터넷으로 이동하여 DNS Recursive Resolver에 의해 수신된다.
2. Resolver는 DNS Root Server에 쿼리를 전송합니다.
3. Root Server는 해당 도메인에 대한 정보를 저장하는 TLD DNS 서버의 주소로 resolver에게 응답한다. 
   ex) .com TLD
4. Resolver는 .com TLD 서버에 요청을 보낸다.
5. TLD 서버는 도메인 이름 서버의 IP 주소인 example.com으로 응답한다.
6. Resolver는 도메인의 이름 서버에 쿼리를 보낸다.
7. example.com의 IP 주소가 이름 서버에서 Resolver로 반환된다.
8. Resolver는 처음 요청한 도메인의 IP주소로 웹브라우저에 응답한다.
* 위 사진에서 6,7의 화살표 방향이 반대로 표시되어있다.

DNS 캐싱

캐싱의 목적은 데이터 요청에 대한 성능과 안정성을 향상시키는 위치에 데이터를 임시로 저장하는 것이다.
DNS 캐싱에는 요청 클라이언트에 더 가까운 곳에 데이터를 저장하여 DNS 쿼리를 좀 더 일 찍 해결할 수 있고,
DNS 조회 체인 아래에 있는 추가 쿼리를 방지하여 로드 시간을 개선하고 대역폭/CPU 소비를 줄일 수 있다.

  • DNS 데이터는 다양한 위치에 캐시될 수 있으며, 각 위치는 TTL(Time-To-Live)에 의해 결정된 일정 시간 동안 DNS 레코드를 저장한다.
  1. 브라우저 DNS 캐싱
    최신 웹브라우저는 기본적으로 설정된 시간 동안 DNS 레코드를 캐시하도록 설계가 되어있다.
    이는 DNS 캐싱이 웹브라우저에 더 가까울수록 캐시를 확인하고 IP 주소에 대한 올바른 요청을 수행하기 위해
    거처야 하는 처리 단계가 줄어들게 합니다.
This post is licensed under CC BY 4.0 by the author.