JuBin's personal study blog

[네트워크] 브라우저에 https://www.daum.net 을 입력 했을때 발생하는 일 본문

네트워크

[네트워크] 브라우저에 https://www.daum.net 을 입력 했을때 발생하는 일

JuBin 2021. 4. 14. 17:45
반응형

1. 브라우저의 URL 파싱

이미지출처 : https://deveric.tistory.com/97

해당 요청이 들어오면 브라우저는 Protocol / URL / Port 을 해석한다.

HTTP의 기본포트는 80, HTTPS433번 포트를 사용한다.

 

2. HSTS(HTTP Strict transport security) 목록 조회

HSTS란 HTTP를 허용하지 않고, HTTPS만 허용하는 기능이다.

HTTP로 요청이 왔다면 HTTP 응답 헤더에 "Strict Transport Security"라는 필드를 포함하여 응답하고 이를 확인한 브라우저는 해당 서버에 요청할 때 HTTPS만을 통해 통신하게 된다.

이 목록을 HSTS 목록이라 부른다.

브라우저는 HSTS목록 조회를 통해 해당요청을 HTTPS로 보낼지 판단한다.

HTST목록에 해당 URL이 존재한다면 HTTP로 요청해도 HTTPS로 요청이 간다.

 

 

3. URL을 IP주소로 변환

브라우저는 자신의 로컬에 hosts 파일브라우저 캐시에서 해당 URL이 존재하는지 판단한다.

만약 존재한다면 해당 URL로 바로 요청을 보내고

존재하지 않는다면 DNS서버에 요청을 한다.

 

 

4. DNS 서버로 요청(URL이 로컬 hosts파일과 브라우저 캐시에 존재하지 않을경우)

Local DNS에 해당 URL의 IP주소를 요청해서 존재한다면 응답하고 없으면 Root DNS로 요청한다.

Root DNS도 없으면 Local DNS는 .net DNS서버에 요청한다.

.net DNS도 없으면 daum.net DNS에 요청한다.

응답받은 IP를 Local DNS 캐시에 저장한다.

 

 

4. 라우터 네트워크 장비를 통해 해당 서버의 게이트웨이까지 이동

먼저 라우터란, 둘 이상의 네트워크간 데이터 전송을 위해 최적 경로를 설정해주며 데이터를 해당 경로를 따라 한 통신망->통신망으로 통신할 수 있도록 도와주는 네트워크 장비이다.

라우터에서는 라우팅 테이블을 통해 최적경로를 지정해 준다.

이를 통해 DNS서버로 부터 받은 IP주소로 찾아간다.

 

 

5. 대상서버와 TCP 소켓 연결

TCP 소켓연결은 3-way-handshake 과정을 통해 이루어진다.

HTTPS 요청은 암호화 통신을 위한 TLS 핸드쉐이킹 과정이 추가된다.

* TCP는 1:1 통신이고 연결이 성공해야 통신이 가능하다. 또한 신뢰성 있는 데이터를 전송함으로써

만약 데이터전송중 패킷이 유실되면 발신자에게 다시 정보를 받는다.

 

6. HTTP(HTTPS) 프로토콜로 요청

소켓연결이 확정되었으니 해당URL의 페이지를 서버에 요청한다.

 

4. 다음 서버는 요청에 대한 응답을 보내준다.(HTML, CSS, JS 등등)

 

 

5. 브라우저는 응답결과를 렌더링 합니다.

 

 

반응형