TIL. 웹 브라우저 접속과정

Yang⭐·2021년 7월 10일
0

TIL

목록 보기
9/10

0. 사용자가 브라우저에 url입력

1. 웹 브라우저가 URL을 해석

URL의 구조
scheme: [//[user:password@]host[:port][/]path[?query][#fragment]
일반적으로 많이 사용되는 HTTP URL의 scheme
http://<host>:<port>/<path>?<searchpart>

URL 문법

  • URL은 가장 앞에 자원에 접근할 방법을 정의해둔 프로토콜 이름을 적는다. - gopher, telnet, ftp, http등
  • 프로토콜 이름 다음에 구분자인 :을 적는다.
  • 만약 IP 혹은 Domain name 정보가 필요한 프로토콜이라면 : 다음에 //를 적는다.
  • 프로토콜명 구반자인 :혹은 //다음에는 프로토콜마다 특화된 정보를 넣는다.
  1. URL이 문법에 맞지 않는다
    👉 웹 브라우저의 기본 검색엔진으로 검색을 요청함.

  2. URL이 문법에 맞다
    👉 HSTS(HTTP Strict Transport Security)목록을 로드해서 확인, 목록에 있다면 첫 요청을 HTTPS로 보내고, 아닌경우엔 HTTP로 보낸다.

    HSTS(HTTP Strict Transport Security)란?
    HTTP 대신 HTTPS만을 사용해 통신해야한다고 웹사이트가 웹브라우저에 알리는 보안기능.

  3. URL이 문법에 맞지만 한글 등이 포함됐다
    👉 Punycode encoding을 url의 host부분에 적용

    Punycode란?
    유니코드 문자열을 호스트이름에서 허용된 문자만으로 인코딩하는 방법이다. 유니코드가 지원하는 모든 언어로 국제화 도메인을 쓸 수 있게한 IDNA의 일부로, 변환은 전적으로 웹브라우저와 같은 클라이언트에서 이뤄진다.
    퓨니코드는 문자, 숫자, 하이픈만 사용할 수 있고 문자열은 항상 "XN--" 문자로 시작한다.
    ex)한글.com => xn--bj0bj06e.co.kr

2. DNS(Domain Name Server)조회한다.

  1. DNS에 요청을 보내기 전, 먼저 브라우저에 해당 도메인이 cache되어 있는지 확인.
  2. 없을 경우 로컬에 저장되어 있는 host파일에서 참조할 수 있는 Domain이 있는지 확인.
  3. 위의 단계가 모두 실패했을 경우 Network stack에 구성되어 있는 DNS로 요청을 보냄.(DNS는 일반적으로 Local router, ISP의 캐싱 DNS)

3. ARP로 대상의 IP와 MAC address를 알아낸다.

ARP(Address Resolution Protocol)란?
IP주소를 MAC주소와 매칭시키기 위한 프로토콜. ARP를 사용하는 이유는 로컬 네트워크에서 단말과 단말 간 통신을 하기 위해 IP주소와 함께 MAC주소를 이용하게 되는데 , IP주소를 MAC address와 매칭해 목적지 IP의 단말이 소유한 MAC주소를 향해 제대로 찾아가기 위함이다.
MAC주소란?
데이터 링크계층에서 통신을 위한 네트워크 인터페이스에 할당된 고유 식별자로 Network Interface Card를 가진 단말이라면 공장에서 출고될 때 부여되고 평생 사용하는 고유한 주소를 의미함. 즉, LAN에서 목적지와 통신하기 위한 실질적인 주소.
ARP broadcast를 보내려면 Network stack library가 조회 할 대상 IP 주소와 ARP broadcast에 사용할 인터페이스의 MAC address를 알아야 한다.

4. 대상과 TCP통신을 통해 Socket을 연다.

이때 HTTPS면 TLS(Transport Layer Securify)가 추가된다.

5. HTTP 프로토콜로 요청 - HTTP서버 응답 - 출력

요약

  1. url주소입력, url 분석
  2. DNS 서버에 검색한뒤 해당 ip주소를 찾아 url정보와 함께 전달
  3. 전달받은 ip주소는 http프로토콜을 사용해 http요청메세지를 생성, tcp통신으로 소켓을 열고 http프로토콜로 요청
  4. http 서버 응답을 받으면 http프로토콜을 사용해 웹페이지 데이터로 변환.
  5. 변환된 웹페이지는 브라우저 렌더링 과정을 거치며 출력된다.

Reference

https://owlgwang.tistory.com/1
https://aws-hyoh.tistory.com/entry/ARP-%EC%89%BD%EA%B2%8C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0

0개의 댓글

관련 채용 정보