주소창에 velog.io를 입력했을때 무슨 일이 일어날까? -1 ( 네트워크 )

jay·2020년 4월 29일
10

👉 Uniform Resource Locator

유알엘 이라고 불리는 이 것은 아이피 주소를 대신해서 사람에게 기억하기 쉬운 문자로 만들어졌습니다. 사람에게 친숙한 이 도메인 이름과 ip 주소를 domain name server에서 데이터베이스로 관리합니다. 이러한 시스템을 Domain Name System이라고 합니다.

URL에 담긴 문법구조를 브라우저가 파악해서 올바른 문법구조로 되어있는지 확인하는데요,

  1. 올바른 문법구조로 되어있을 때
  2. 올바른 문법구조로 되어있지 않을 때 : 일반 검색엔진에 검색

💡올바른 문법구조로 되어있을때

  1. 브라우저에는 최근 방문한 페이지의 DNS 기록을 일정시간 저장해 놓는 캐시가 있습니다. DNS를 활용하기 위해 브라우저가 먼저 캐시를 확인합니다.
  2. 만약 없다면, OS 또한 DNS 기록에 대한 캐시가 있으므로 브라우저는 OS에게 해당 기록을 가지고 있는지 묻습니다.
  3. 만약 없다면, 위와 동일한 이유로 라우터에게 묻습니다.
  4. 만약 없다면, URL 을 입력할때 이에 대한 요청은 일반적으로 Internet Service Provider라고 하는 인터넷 공급업체나 기업 네트워크 DNS 해석기로 라우팅됩니다. 해당 ISP cache가 기록을 가지고 있는지 마지막으로 확인합니다.

💡캐시에 해당 기록이 없어요!

ISP는 (회사라고 보시면 될 것 같아요) 그들만의 DNS 서버를 가지고 있습니다. 이 서버에 Domain Name System 데이터베이스 서버가 있는데요, 해당 URL과 맵핑되는 ip주소가 있는지 확인합니다.

  1. 없으면 에러!
  2. 있으면 해당 ip 주소를 DNS 서버로부터 가져옵니다.

👉 TCP Connection

이제 리소스를 요청할 서버가 어디있는지를 알게 되었으니 브라우저는 서버와 TCP connection을 맺고 요청한 데이터를 받을 다리를 건설합니다. 이것을 3-way-handshaking이라고 합니다.
UDP 의 경우 이 3-way-handshaking과정이 없으나 http 프로토콜의 경우 TCP connection이 default이므로 데이터 이동 전에는 핸드쉐이크 과정이 항상 선행된다고 볼 수 있습니다.

👉 HTTP request and response

  1. 첫 웹페이지 요청을 위해 GET request를 서버에 보내게 됩니다.
    이때 쿠키에 해당 웹페이지에 대한 정보가 담겨있다면 헤더에 포함되어 함께 보내지게 됩니다.

  2. 서버에 WAS (Web Application Server) 가 있다면 백엔드 엔지니어가 설계한 대로 request에 대한 handle을 해주게 됩니다. 이러한 handler를 서버프로그램이라고 하죠.
    그리고 response를 JSON, XML, HTML 포멧에 맞춰 만들어줍니다.

  3. 서버는 status code와 함께 response를 보내줍니다.

참고:

  1. aws 아마존
  2. What happens when you type a URL in the browser and press enter? - Manneesha Wijesinghe
profile
리엑트 프론트엔드 개발자

0개의 댓글