인터넷 브라우저에 www.daum.net을 입력하면 뒷단에서는 어떤 일이 일어나는지 과정을 알아보겠습니다.
1. 브라우저의 URL 파싱
URL을 입력받은 브라우저는 URL의 구조를 해석합니다.
- 어떤 프로토콜을 통해 해당 URL에 요청을 할 것인지
- 어떤 URL로 요청할 것인지
- 어떤 포트로 요청할 것인지
보통 우리는 URL을 입력해서 페이지 이동을 할 때 포트번호까지 입력하면서 이동하진 않는다. 왜냐하면 브라우저는 설정된 기본값에 의해 포트번호가 자동으로 붙기 때문이다. HTTP 라면 80 , HTTPS 라면 443 포트가 자동적으로 붙게 된다.
2.HSTS 목록 조회
HSTS(HTTP Strict transport security)란 HTTP를 허용하지 않고 HTTPS를 사용하는 연결만 허용하는 기능을 말합니다.
만약 HTTP로 요청이 왔다면 HTTP 응답 헤더에 "Strict Transport Security"라는 필드를 포함하여 응답하고 이를 확인한 브라우저는 해당 서버에 요청할 때 HTTPS 만을 통해 통신하게 됩니다. 그리고 자신의 HSTS캐시에 해당 URL을 저장하는데 이를 HSTS 목록이라 합니다.
3.URL을 IP 주소로 변환
www.daum.net이라는 주소로는 컴퓨터끼리 통신할 수 없습니다. 이를 인터넷상에서 컴퓨터가 읽을 수 있는 IP 주소로 변환해야 통신이 가능해집니다.
브라우저에서는 자신의 로컬 host 파일과 브라우저 캐시에 해당 URL이 존재하는지 확인합니다. 존재하지 않는다면 도메인 주소를 IP주소로 변환해 주는 DNS 서버에 요청하여 해당 URL을 IP 주소로 변환합니다.
3 - 1. DNS 서버로 요청하는 과정
1. 미리 설정된 Local DNS에 해당 URL 주소의 IP주소를 요청합니다.
2. Local DNS에 해당 IP주소가 존재한다면 이를 응답하고, 없다면 다른 DNS 서버와 통신합니다. root DNS 서버에 해당 URL의 IP주소를 요청합니다.
3. root DNS서버에 해당 IP주소가 없다면 하위 DNS 서버에 요청하라고 응답합니다. 이 응답을 받은 Local DNS는. net 도메인을 관리하는 DNS 서버에 같은 내용을 요청합니다.
4.. net DNS 서버에 해당 IP주소가 없다면 하위 DNS 서버에 요청하라고 응답합니다. 이 응답을 받은 Local DNS는 daum.net 도메인을 관리하는 DNS 서버에 같은 내용을 요청합니다.
5. daum.net DNS 서버에서 IP주소를 응답받은 Local DNS는 해당 IP주소를 캐싱하고 응답합니다.
4. 라우터를 통해 해당 서버의 게이트웨이까지 이동
DNS 서버에서 IP 주소를 받았으니 해당 서버로 요청을 보냅니다. 하지만 우리는 IP 주소는 알지만 해당 IP 주소로 어떻게 가야 할지 경로는 알 수 없습니다. 이 요청이 어떻게 이동할지는 네트워크 장비인 라우터의 라우팅을 통해 이루어집니다.
라우터에서는 라우팅 테이블을 통해 해당 요청이 어떤 경로를 통해 가야할지 경로를 지정해 줍니다.
5. ARP를 통해 IP 주소를 MAC 주소로 변환
실질적인 통신을 하기 위해서는 논리 주소인 IP 주소를 물리 주소인 MAC 주소로 변환해야 합니다. 이를 위해 네트워크 내에서는 ARP를 브로드 캐스팅합니다. 해당 IP 주소를 가지고 있는 노드는 자신의 MAC 주소를 응답합니다.
6. 대상 서버와 TCP 소켓 연결
이제 대상 서버와 통신하기 위해 TCP 소켓 연결을 진행합니다. 소켓 연결은 3-way-handshake라는 과정을 통해 이루어집니다.
하지만 지금 하는 요청은 HTTPS 요청이기 때문에 서로 암호화 통신을 위한 TLS핸드쉐이킹이 추가됩니다.
7. HTTP(HTTPS) 프로토콜로 요청, 응답
연결이 확정되었다면 해당페이지 www.daum.net를 달라고 서버에게 요청합니다. 서버는 해당 요청을 받고 이 요청을 수락할 수 있는지 검사합니다. 그리고 서버는 이 요청에 대한 응답을 생성하여 브라우저에게 전달합니다.
8. 브라우저에서 응답을 해석
서버에서 응답한 내용은 HTML, CSS.Jacascript 및 이지미 파일모음으로 이루어져 있습니다. 이를 브라우저에서 해석하여 그려줍니다. 여기까지 완료가 된다면 우리가 원하는 www.daum.net 페이지가 그려져 화면에 보일 것입니다.
요약
1. 브라우저가 URL을 파싱 하여 분석한다 ( 어떤 프로토콜,어떤URL로 보내야할지 정해야되기때문)
2.HTTPS 요청만을 허용하기위해 HSTS 목록을 조회한다
3.URL을 DNS 에 요청하여 IP 주소로 변환한다
4.IP 주소로 네트워크장비 라우터를 통해 해당서버로 요청을 보낸다
5. 해당 서버와 소통하기 위해 TCP를 연결을 진행한다
6. 연결이 확정되었다면 콘텐츠를 달라고 서버에게 요청한다.
7. 브라우저는 응답으로 받은 콘텐츠를 화면에 렌더링 한다
출처 : https://deveric.tistory.com/97 위 글은 해당 블로그를 참고하여 작성하였습니다.
'컴퓨터 사이언스' 카테고리의 다른 글
브라우저의 렌더링 과정 (0) | 2023.07.23 |
---|---|
쿠키(Cookie) 와 세션(Session)의 차이 (0) | 2023.05.26 |
CORS(교차 출처 리소스 공유) 란 무엇일까? (0) | 2023.05.20 |