Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 몬티홀
- 배열 돌리기1
- DP
- 백준
- 문제풀이
- 그래프탐색
- 그래프 탐색
- 정수론
- g1gc
- 면접복기
- Greedy
- 프로세스
- GC
- BFS
- Markdown
- 빌더패턴
- 적정 스레드
- Python
- 이진탐색
- deque
- Stack
- 분할정복
- 브루트포스
- GarbageCollector
- github
- 그리디
- springboot
- 구현
- 마크다운
- 회고
Archives
- Today
- Total
FeelingXD
[Network] 웹에서 검색하면 어떤일이 일어날까?(인프라 관점) 본문
웹을 통해 검색하면 어떤일이 일어날까?
면접 단골질문 중 하나인 웹에 검색하면 컴퓨터 내부에서 일어나는 일들에 대해서 인프라 관점으로 작성하는 글입니다. 🤔
www.naver.com 을 입력하면 ..
도메인 주소를이용해서 접속하려는 ip 를 얻는 방법
우선 사용자가 웹브라우저 를 통해 주소창에 www.naver.com
을 검색한다.
기본적 으로 통신을 하려면 통신 하고자하는 주소의 ip주소를 알아야한다. 위에 언급한
사용자가 www.naver.com 은 주소 로 통신하기전에 주소를 ip로 변환하는 과정을 거쳐야한다.
그럼 주소를 ip 로 변환하는 과정은 어떻게 일어날까?
- 우선 호스트의 hosts 파일을 참고 한다. 만약 검색 하려는 주소가 hosts 파일에서 찾을 수 있다면 해당 파일을 참고하여 ip주소로 변환 후 통신한다.
- 1번에 실패 할 경우 호스트의 DNS cache에서 정보를 조회한다.
- 2번까지 실패 할 경우 DNS server에 주소에대한 ip를 질의 하여 접속 하려는 ip를 얻게된다.
🤔 - 호스트가 DNS 를 통해 ip를 알려면 DNS서버에 연결 해야하지 않나요 ?
✨ - (일반적으로) 호스트는 DNS 에 질의시 UDP프로토콜로 질의하여 ip주소를 받아 온다.
드디어 접속하려는 www.naver.com
에 대한 ip 주소를 알게 되었다.
브라우저가 하는 http 통신
이제 www.naver.com
에 대한 ip 주소를 획득했고 호스트는 해당 ip 주소와 tcp연결 을 시도 한다. http(1~2) 는 tcp 기반의 통신이기에 tcp 연결을 하기위한 handshake 이후에 통신을 연결한다.
tcp 연결 수립 이후 다음과 같은 과정이 일어난다.
- 호스트는 www.naver.com 으로 get 요청을 보낸다. (HTTP REQUEST)
- 서버는 호스트로 부터 온 리퀘스트를 확인하고 응답을 보낸다. (HTTP RESPONSE)
요약
infra 관점에서 url 을 검색할때 어떻게 원하는 도메인 주소에 대한 ip를 얻는지 또 어떻게 더 빨리 제공할지의 관점이 필요하다.
infra 에 따라 요청ip 를 빨리 얻기
- 사용자의 컴퓨터의 hosts의 파일을 참고함
- 공유기, ISP(internet service provider) 캐시들을 참고하여 요청주소에대한 ip가 있는지 확인함
- 그래도 없다면 DNS 서버 질의를 통해 요청주소에대한 ip를 얻음
항상 DNS 에 요청하는건 DNS 에게도 사용자에게도 효율성 측면에서 좋지않다 그러면서 DNS, 공유기 환경에서 다양한 방법으로 Cache 해둠으로 써 속도를 높인다.
참조
'CS > Network' 카테고리의 다른 글
[Network] 웹에서 검색시 어떤일이 일어날까? (프론트 관점) (0) | 2024.02.25 |
---|