HTTP
-
물리적인 하나의 컴퓨터에는 여러개의 서버가 동작할 수 있음. 각각의 서버들은 포트값으로 구분되어 동작 (e.g 웹은 80, 이메일은 25, FTP는 21…)
-
인터넷은 네트워크의 네트워크(수많은 네트워크의 결합체) - 인터넷은 TCP/IP 약속으로 연결되어있음
-
HTTP는 서버와 클라이언트가 인터넷상에서 데이터를 주고 받기 위한 프로토콜(어떤 종류의 데이터도 모두 전송가능)
-
Stateless 특징 => 한번 보내면 끊어버린다! (쿠키의 등장 배경)
-
URL : 인터넷 상의 자원 위치
브라우저에서 처리되는 webkit 렌더링엔진의 처리과정
-
HTML을 해석해서 DOM Tree를 만들고, CSS를 해석해서 역시 CSS Tree(CSS Object Model)을 만듭니다.
-
이 과정에서 Parsing 과정이 필요하며 토큰 단위로 해석되는 방식은 일반적인 소스코드의 컴파일 과정이라고 보시면 됩니다.
-
DOM Tree와 CSS Tree, 이 두 개는 연관되어 있으므로 Render Tree로 다시 조합됩니다.
-
이렇게 조합된 결과는 화면에 어떻게 배치할지 크기와 위치 정보를 담고 있습니다.
-
이후에 이렇게 구성된 Render Tree정보를 통해서 화면에 어떤 부분에 어떻게 색칠을 할지 Painting과정을 거치게 됩니다.
웹서버
- 웹 서버는 소프트웨어(Software)를 보통 말하지만, 웹 서버 소프트웨어가 동작하는 컴퓨터
- 웹 브라우저나 웹 크롤러가 요청하는 리소스는 컴퓨터에 저장된 정적(static)인 데이터이거나 동적인 결과가 될 수 있음
- 웹크롤러 : 네이버, 구글과 같은 검색사이트에서 다른 웹사이트 정보를 읽어갈때 사용하는 소프트웨어
DBMS
- 다수의 사용자가 데이터베이스 내의 데이터에 접근할 수 있도록 해주는 소프트웨어
미들웨어
- 클라이언트 쪽에 비즈니스 로직이 많을 경우, 클라이언트 관리(배포 등)로 인해 비용이 많이 발생하는 문제
- 비즈니스 로직을 클라이언트와 DBMS사이의 미들웨어 서버에서 동작하도록 함으로써 클라이언트는 입력과 출력만 담당하도록함
WAS
- WAS는 일종의 미들웨어로 웹 클라이언트(보통 웹 브라우저)의 요청 중 웹 애플리케이션이 동작하도록 지원하는 목적을 가짐.
프로그램 실행 환경과 데이터베이스 접속 기능 제공
여러개의 트랜잭션 관리
업무를 처리하는 비지니스 로직 처리
=> 웹서버(e.g Apache)와 WAS를 따로따로 설치하지 않는 이유는 Tomcat(WAS)이 웹서버가 가진 기능까지 모두 포함하고 있기 때문
=> 사용자가 많이 사용하는 대용량 웹어플리케이션의 경우 서버수가 여러 대일 가능성이 높음. 이때 비정상적으로 A 웹서버가 다운될 때가 있는데, WAS와 연결된 다른 웹서버(B)와 연동시켜 사용자가 모르게 함 (장애 극복 기능 - failover
)