티스토리 뷰

Web

웹 브라우저의 기본 원리

nooblette 2021. 7. 26. 23:50

서버 개발자를 진로로 생각중인데 그렇다고해서 한 우물만 판다기 보다는 

서버 + 프론트엔드, CentOS와 같은 리눅스, 머신러닝 or 딥러닝와 같은 추가적인 지식을 갖고 있으면

프로젝트나 실무에 투입되어 협업할때 더 도움이 될 수도 있고 단순히 그러한 지식이 있다는 것만으로도 나의 경쟁력을 키워준다고 생각한다. 이러한 이유도 있고 프론트와 자바스크립트에 대해 호기심도 생겨서 이번에 서버 사이드 개발을 다시 공부하면서 FE도 함께 해보는 중이다.


웹 브라우저(Web Browser)의 기본 구조

 

https://www.html5rocks.com/en/tutorials/internals/howbrowserswork/

위와 같은 구조로 이루어져 있다.

  • Browswer Engine - 브라우저와 관련된 소프트웨어를 동작하는 엔진.
  • Rendering Engine - 웹 페이지에 대한 컨텐츠 및 데이터를 위해 동작하는 엔진. 렌더링 역할을 하는 엔진이 브라우저마다 다르기 때문에 같은 페이지가 다르게 보이는 경우가 있다. 출처: https://mygumi.tistory.com/173
  • Networkging - http 프로토콜을 통해 서버와 네트워크 통신
  • JS Interpreter - 자바스크립트를 해석
  • UI Backend - 클라이언트의 요청을 서버로 전달
  • Data - 웹 페이지와 관련된 데이터를 저장

 


 

Main flow

 

주요한 구성은 다음 과 같다.

1. html을 parsing 해서 DOM Tree 생성

2. css를 parsing 해서  Style Rulus 생성

3. 1과 2번을 합쳐 Render Tree 생성

4. 실제 User가 볼수있도록 Painting(블록들을 배치, 색칠 등..)하고 Display

 

위 그림을 기억해두고 웹 페이지 개발을 하다가 헷갈리거나 막힌다면 저 그림을 떠올려 보라고 한다.

 

DOM Tree

1
2
3
4
5
6
7
8
<html>
  <body>
    <p>
      Hello World
    </p>
    <div> <img src="example.png"/></div>
  </body>
</html>
cs

이런한 html 코드의 태그와 텍스트, 이미지와 같은 각 항목을

https://www.html5rocks.com/en/tutorials/internals/howbrowserswork/

이와 같은 트리(계층)형태로 표현한것을 DOM(Document Object Model) Tree라고한다.

 


출처 : https://www.html5rocks.com/en/tutorials/internals/howbrowserswork/

'Web' 카테고리의 다른 글

JPA, ORM, Hibernate, JPQL  (0) 2021.09.09
Apache Tomcat과 Apache  (0) 2021.08.14
URL과 URI의 차이  (0) 2021.07.26
HTTP 프로토콜  (0) 2021.07.21
[Django] MVC 패턴과 MTV 패턴  (0) 2021.07.14
Comments