브라우저에 URL을 입력하면

Voler Web·2022년 8월 13일

Word

목록 보기
3/23

기술 면접을 준비하기위한 포스팅이다

브라우저에 google.com을 입력 했을 때 일어나는

브라우저에 먼저 URL이 입력되면 웹 브라우저가 URL을 해석합니다.

URL의 구조

URL의 문법

  • URL은 제일 앞에 자원에 접근할 방법을 정의해 둔 프로토콜 이름을 적는다.
    [ gopher, telnet, ftp, http, usenet ] 등이다.
  • 프로토콜 이름 다음에는 프로토콜 이름을 구분하는 구분자인 ":"을 적는다.
    만약 IP 혹은 Domain name 정보가 필요한 프로토콜이라면 ":" 다음에 "//"를 적는다.[3]
  • 프로토콜명 구분자인 ":" 혹은 "//" 다음에는 프로토콜 마다 특화된 정보를 넣는다.
    • 예1) http://www.somehost.com/a.gif- IP 혹은 Domain name 정보가 필요한 형태 ( - www.somehost.com에 있는 a.gif를 가리키고 있음 )
    • 예2) ftp://id:pass@192.168.1.234/a.gif- IP 혹은 Domain name 정보가 필요한 형 - 태 ( 192.168.1.234에 있는 a.gif를 가리키고 있음 )
    • 예3) somebody@mail.somehost.com - IP정보가 필요없는 프로토콜
      ( mailto 프로토콜은 단지 메일을 받는 사람의 주소를 나타냄 )

출처) 위키백과 - URL

만약 URL이 문법에 맞지 않는다면 입력을 웹 브라우저의 기본 검색엔진으로 검색을 요청합니다.

  • URL이 문법에 맞다면 Punycode encoding을 url의 host 부분에 적용합니다.
  • HSTS (HTTP Strict Transport Security)목록을 로드해서 확인합니다
    HSTS 목록에 있다면 첫 요청을 HTTPS로 보내고 , 아닌경우 HTTP로 보내게 됩니다.

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

도메인을 DNS에서 조회 합니다

  • DNS에 요청을 보내기 전에 먼저 Browser에 해당 Domain이 cache 되어 있는지 확인합니다.
    브라우저는 이전에 방문한 웹사이트의 DNS 기록을 일정 기간동안 저장하고 있습니다.
    (Chrome의 경우 chrome://net-internals/#dns 에서 확인 가능)

  • 브라우저 cache에 없는 경우 로컬에 저장되어 있는 OS Cache(hosts파일)에서 Domain을 확인합니다.

  • 모두 실패 하였을 경우 DNS 서버로 요청을 보내 검색합니다.

  • 이 과정에서 매핑되는 IP 주소가 있다면 사용자가 입력한 URL의 정보와 함께 전달됩니다.

DNS 서버(Name Server)는 할당된 도메인 영역에 대한 정도를 가지고 있는 서버로,
주로 도메인을 IP주소로 변환하는 역활을 합니다.

HTTP 요청메세지 전송

  • DNS에서 전달받은 response를 브라우저에서 HTTP 프로토콜을 사용하여 요청 메시지를 생성하고 생성된 HTTP 요청 HTTP 메시지는 TCP/IP 프로토콜을 사용하여 인터넷을 거쳐 해당 IP주소의 서버로 전송됩니다.
  • 이렇게 서버에 도착한 HTTP 요청 메시지는 HTTP 프로토콜을 사용하여 웹 페이지 URL 정보로 변환되어 웹 페이지 URL 정보에 해당하는 데이터를 검색합니다.
  • 검색된 웹 페이지 데이터는 또 다시 HTTP 프로토콜을 사용하여 HTTP 응답 메시지를 생성하고 TCP 프로토콜을 사용하여 인터넷을 거쳐 요청한 컴퓨터로 전송됩니다.
  • 도착한 HTTP 응답 메시지는 HTTP 프로토콜을 사용하여 웹 페이지 데이터로 변환되어 웹 브라우저에 의해 출력되어 사용자가 볼 수 있게 됩니다.

link1
link2
link3
link4

profile
공부하려 끄적이는 velog

0개의 댓글