브라우저
- DNS Lookup: 사용자가 브라우저에 도메인네임 입력하면 DNS 서버에서 IP주소를 얻기 위해 DNS lookup을 수행한다.
- 프로토콜 스택의 가장 윗층 7 layer인 Application Layer에 해당한다.
- 크롬에서는 브라우저 -> hosts 파일(파일 시스템) -> DNS cache 순으로 찾는다.
- 루트 도메인서버에서부터 서브 도메인서버 순으로 IP를 찾는다.
- IP주소를 이용해 HTTP request message를 만들어 OS에 전송 요청한다.
프로토콜 스택(OS에 내장된 네트워크 제어용 SW)
: OSI 계층(or TCP 계층)을 내려가면서 패킷 등 붙이는 것
- 브라우저로 부터 받은 메시지를 패킷속에 저장하고, 이 패킷을 LAN 어댑터에 넘김
- LAN 어댑터는 이걸 전기신호로 변환시켜 송출한다.
네트워크
: 패킷은 스위칭 허브 -> 인터넷 접속용 라우터 -> 통신사 인터넷 순으로 전달된다.
방화벽(목적지 앞 단)
: 인터넷 핵심부를 통과해 웹 서버 측 LAN에 도착하고, 방화벽에서 패킷 검사
- 이후, 캐시서버에서 얻을 수 있는거면 캐시서버에, 아니면 웹 서버로 가게 된다.
웹 서버
- 웹 서버의 프로토콜 스택(OS의 네트워크 제어용 sw)은 패킷 추출, 메시지 복원해 웹 어플리케이션에
- 요청받은 데이터를 응답 메시지에 넣어 클라이언트에 회송.(왔던 과정 그대로)
Reference)
HTTP 완벽 가이드
https://github.com/WooVictory/Ready-For-Tech-Interview/blob/master/Network/%EC%A3%BC%EC%86%8C%EC%B0%BD%EC%97%90%20naver.com%EC%9D%84%20%EC%B9%98%EB%A9%B4%20%EC%9D%BC%EC%96%B4%EB%82%98%EB%8A%94%20%EC%9D%BC.md
https://github.com/ksundong/backend-interview-question
https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/master/Network