[TIL] 브라우저에 URL을 입력하면 벌어지는 일

river·2022년 6월 8일
0

스터디

목록 보기
5/9

1. 브라우저의 URL 파싱

https://www.google.com:443

url을 입력받은 브라우저는 먼저 URL의 구조를 해석한다.

  1. 어떤 프로토콜을 통해 해당 URL에 요청할 것인지,
  2. 어떤 URL로 요청할 것인지,
  3. 어떤 포트로 요청할 것인지

포트를 명시적으로 선언하지 않았을 경우, http는 80, https는 443 포트를 디폴트로 요청한다.

2. HSTS 목록 조회

브라우저는 HSTS 목록을 조회한 후, 해당 요청을 HTTPS로 보낼지 판단한다. HSTS목록에 해당 URL이 존재할 경우, 사용자가 HTTP로 요청을 보내도 브라우저가 자동으로 HTTPS로 요청한다.

❓ HSTS(HTTP Strict Transport Security)목록

HTTP를 허용하지 않고 HTTPS를 사용하는 연결만을 허용하는 기능.
만약 HTTP로 요청이 왔을 경우, HTTP 응답 헤더에 "Strict Transport Security"라는 필드를 포함해 응답하고, 이를 확인한 브라우저는 해당 서버에 요청할 때 HTTPS만을 통해 통신하게 된다. 그리고 자신의 HSTS 캐시에 해당 URL을 저장하는데, 이를 HSTS 목록이라고 부른다.

3. URL을 IP주소로 변환

실질적으로 컴퓨터는 www.google.com 같은 도메인으로는 통신할 수 없기 때문에, 이를 컴퓨터가 읽을 수 있는 IP주소로 변환해야한다.
먼저 브라우저는 자신의 Localhost 파일과 브라우저 캐시에 해당 URL이 존재하는지 확인하고, 존재하지 않는다면 도메인 주소를 IP로 변환해주는 DNS(Domain Name System)서버에 요청해 해당 URL을 IP 주소로 변환한다.

4. 라우터를 통해 해당 서버의 게이트웨이까지 이동

DNS 서버에게 받은 IP주소로 요청을 보낸다. 이 요청은 네트워크 장비인 라우터의 라우팅을 통해 이루어진다.
라우터에서는 라우팅 테이블을 통해 해당 요청이 어떤 경로를 통해 가야할지 경로를 지정해준다.

5. ARP를 통해 IP주소를 MAC주소로 변환

실질적인 통신을 하기 위해서는 논리 주소인 IP주소를 물리 주소인 MAC주소로 변환해야 한다. 이를 위해 해당 네트워크 내에서 ARP를 브로드 캐스팅한다. 해당 IP주소를 가지고 있는 노드는 자신의 MAC 주소를 응답한다.

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

대상 서버와 통신하기 위해 TCP 소켓 연결을 진행한다.([TIL]TCP, UDP)
HTTPS 요청일 경우 암호화 통신을 위한 TLS 핸드쉐이킹이 추가된다.

7. HTTP(HTTPS) 프로토콜로 요청 및 응답

연결이 확정되었을 경우 해당 페이지(ex_www.google.com)를 서버에 요청한다. 서버에서 해당 요청을 받고, 이 요청을 수락할 수 있는지 검사한 뒤, 요청에 대한 응답을 생성해 브라우저에 전달한다.

8. 브라우저에서 응답을 해석

서버의 응답 내용은 HTML, CSS, JavaScript 등으로 이루어져있다. 이를 브라우저가 해석해 렌더링한다.

profile
가보자고

0개의 댓글