호비시의 끄적끄적

브라우저에서 서버까지 본문

취준

브라우저에서 서버까지

호비시 2022. 6. 18. 09:00

인터넷 브라우저에서 URL 입력이 들어왔을 때 서버까지 도달하는 흐름에 대해 적어본다.

1. URL 요청

클라이언트가 주소창에 URL 을 입력합니다.

2. URL 분석

브라우저가 해당 URL을 분석합니다.

shcem : 자원에 접근할 방법을 정의해 둔 프로토콜 이름(ex. http, ftp)
host : 도메인 이름. IP address도 사용 가능
Post : 포트 번호. (HTTP 기본포트 80, HTTPS 기본포트 443 생략가능)
path : 자원의 경로
query : Query String. GET 방식으로 요청할 때 필요한 데이터를 넘겨주기 위함
fragment : anchor. HTML에 특정 ID가 있는 곳으로 스크롤 이동할 수 있도록 하기 위함

URL이 문법에 맞지 않는다면 웹 브라우저의 기본 검색엔진으로 검색을 요청합니다.
URL이 문법에 맞다면 Punycode encoding을 url의 host 부분에 적용합니다.

3. HSTS 목록 조회

  • HTTP Strict Transport Security

HTTP를 허용하지 않고 HTTPS만 허용하는 기능.
이를 통해 브라우저에서 이 HSTS 목록 조회를 통해 HTTPS로 보낼지 판단합니다. HSTS 목록에 해당 URL이 존재한다면 명시적으로 HTTPS를 통해 요청한다 해도 이를 HTTPS로 요청합니다.

4. IP 주소로 변환

URL을 IP주소로 변환합니다.

변환 과정

  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주소를 캐싱하고 응답합니다.

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

DNS 서버에서 받은 IP주소를 통해 해당 서버로 요청을 보냅니다.

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

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

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

OSI 4계층 Transpost Layer에서 Session을 연결할 때 TCP 연결을 진행합니다.
HTTPS 요청의 경우 암호화 통신을 위한 TSL HandShaking이 추가됩니다.

8. HTTP 프로토콜 요청, 응답

연결이 확정된 상태에서 해당 페이지 www.naver.com을 달라고 서버에게 요청합니다.
서버에서 해당 요청을 받고, 이 요청을 수락할 수 있는지 검사합니다.
그리고 서버는 이 요청에 대한 응답을 생성하여 브라우저에게 전달합니다.

9. 브라우저에서 응답을 해석 및 출력

서버에서 받은 Response Data를 출력합니다. Response Data 는 HTML, CSS, Javascript 등으로 이루어져 있습니다.

'취준' 카테고리의 다른 글

TCP / UDP  (1) 2022.06.24
REST API란?  (0) 2022.06.19
운영체제  (0) 2022.04.09
RDB vs NOSQL  (0) 2022.04.02
추상클래스와 인터페이스  (0) 2022.03.26
Comments