브라우저에서 주소를 입력했을때

L·2023년 1월 19일
0

해당 내용은 면접에서 많이 나오는 질문인지라, 면접때 조금이라도 덜 당황하고 대답하고 싶다는 생각으로 정리해보았다.😂

🛻1.서버로부터 리소스(데이터)를 받는 과정.(=웹 동작 방식)

MDN에서는 이 과정을 상점으로 이동하여 주문한 상품을 받는 과정과 유사하다고 설명되어있다.🛒

1.브라우저는 DNS서버를 통해 해당 도메인을 가진 IP를 찾는다.(=주소록을 열고 찾고자하는 상점(도메인)의 주소를 찾는 과정)

  • DNS는 Domain Name System Servers의 줄임말로, 복잡한 IP에 대한 도메인 정보가 있는 서버를 말한다.
  • DNS서버를 찾기 전에 캐싱된 DNS기록을 뒤져서 있으면 DNS 서버 요청없이 해당 IP주소를 반환하고 없다면, DNS 서버로 요청한다.

2. 브라우저는 URL 정보와 함께 서버로부터 요청 메시지를 보낸다.(=상품을 주문하는 과정)

  • http 요청은 주로 TCP/IP을 사용하여 전송.
  • TCP/IP(Transfer Control Protocol / Internet Protocal) : 전송제어 규약 / 인터넷 프로토콜은 브라우저와 서버 사이에 데이터를 통신하는 규약을 말함.(=일종의 이동수단ex)자동차, 배, 걸음 등..)
  • 서버에게 데이터를 보내기 위해서 TCP는 Three Hand Shaking등 여러 방법을 사용하는데, 이는 패킷을 보내고나서 끝내는것이 아닌 보내졌는지를 서버에 확인하는 과정이 추가된다.
  • Three Hand Shaking은 클라이언트는 최초 'SYN'플래그로 서버에 접속하여 패킷을 보내고, 서버측은 'SYN/ACK'플래그를 클라이언트 측에 보낸다. 마지막으로 클라이언트는 'ACK' 플래그를 보내 데이터를 교환.

3. 서버는 요청을 승인하고 작업을 처리한 후 각종 리소스(HTML,Javascript,CSS등)와 요청 결과를 함께 응답(response)을 돌려준다.(=상점에서 원하는 상품을 전달해주고 이를 손님에게 전달해주는 과정)

4. WAS 미들웨어를 이용하여 동적인콘텐츠를 제공하는 파일 처리(JSP,PHP )와 DataBase 연동 요청과 조회된 결과를 서버에 돌려준다.

  • 웹 서버 혼자서는 작업을 처리하는데 많은 부하가 발생할수도 있기 때문에, 이를 돕기위한 미들웨어가 있는데 이를 WAS(WebApplicationServer) 라고 한다.
  • 반대로 HTML,CSS,이미지파일등 정적인 파일을 처리는 웹 서버에서 한다.

5. 서버는 웹 서버와 WAS에서 작업한 결과를 상태코드 값과 함께 브라우저에게 돌려주고 이를 출력한다.(=주문한 상품과 정보를 집에 보여준다.)

  • 1XX:정보응답.
  • 2XX:성공.
  • 3XX:클라이언트 리다이렉트.
  • 4XX:클라이언트 에러
  • 5XX:서버 에러

2.⚒️웹 브라우저 랜더링 과정

해당 부분은 서버로부터 받은 HTML,CSS,Javascript등의 파일들을 출력하는 순서를 설명한다.

1. HTML은 Dom Tree, CSS는 CSSOM(CSS Object Model)Tree 를 만든다.

2. HTML Dom Tree와 CSSOM을 이용해 랜더링 트리 생성.

  • 랜더링 트리를 생성하는 과정에서 일부 태그는 트리 생성에서 제외.(meta,script 태그등)
  • CSS 속성값 설정때문에 숨겨진 태그들도 랜더링 트리 생성 과정에서 생략 된다. 예를 들어 위 사진에서 보 듯, p 태그안에 span 태그는 display:none 속성때문에, 랜더링 트리 생성시 제외 되어있는것을 알 수 있다.
    🌟 visibility:hidden 도 요소를 숨기는 역할을 하지만, display:none과의 차이는 공간을 차지하는가의 차이이다. visibility:hidden는 요소를 숨기지만 공간을 차지하기때문에 랜더링 트리에 구성이 되지만., display:none는 아예 공간할당이 되지않기때문에, 생성과정에서 생략이 된다.

3. Layout

  • 랜더링트리를 바탕으로 루트에서 노드를 시작하여 순회하면서, 브라우저의 뷰포트 및 각 요소의 위치 및 크기 계산.(Reflow)

4. Paint

  • 랜더링 트리를 이용해 실제 픽셀로 변환 하고 브라우저에 해당 내용을 그린다.(painting)
  • 스타일이 복잡할수록 많은 시간이 걸린다.(ex.단색은 패인팅에 걸리는 시간과 비용이 적게들지만, 그림자는 시간이 오래걸림)
  • 3단계 Layout 단계와 합쳐서 Rerendering이라고 부른다.

참고

웹의 동작 방식(MDN)
주소창에-www.google.com을-입력했을-때-일어나는-과정
'www.google.com'을 주소창에서 입력하면 일어나는 일
브라우저는 어떻게 동작하는가?
Render-tree Construction, Layout, and Paint

0개의 댓글