Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ohii] Chapter03_Web Server & Web Application Server(WAS), Reverse Proxy #11

Merged
merged 2 commits into from
May 2, 2024
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 49 additions & 0 deletions docs/chapter3/Ch03keyword.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
<Static Pages vs Dynamic Pages>
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

추가개념 설명 감사합니다!

- Static Pages
- 파일 경로를 받아서 경로와 일치하는 file contents 반환
- 항상 동일한 (static) 페이지를 반환
- Dynamic Pages
- 인자의 내용에 맞게 동적인 contents 반환
- Web server에 의해서 실행되는 프로그램을 통해서 만들어진 결과물 반환

<Web Server>
- 웹 브라우저 클라이언트로 부터 HTTP 요청을 받아서 HTML 페이지, 이미지, 비디오 및 파일과 같은 정적 컨텐츠를 제공
- HTTP 프로토콜을 기반으로 하여 클라이언트의 요청을 서비스하는 기능
- 크게 두 가지 기능 존재)
- 1. WAS를 거치지 않고 정적인 자원을 바로 제공
- 2.동적인 자원 제공을 위한 요청을 WAS에 보내고, WAS가 처리한 결과를 클라이언트(웹 브라우저)에게 전달
- ex) Nginx
- 일반적으로 멀티 스레딩 지원 xx

<Web Application Server(WAS)>
- 실시간 업데이트, 개인화된 정보 및 고객 지원과 같은 동적 컨텐츠를 제공하기 위해 만들어진 Application Server
- WAS = Web Server + Web Container
- Web Server의 기능을 구조적으로 분리하여 처리하고자 제시됨
- 주로 DB 서버와 같이 수행되고, 분산 환경(분산 트랜잭션, 보안, 메시징, 쓰레드 ..)에서 사용
- 주요기능)
- 1. 프로그램 실행 환경과 DB 접속 기능 제공
- 여러 개의 트랜잭션 관리 기능
- 업무를 처리하는 비즈니스 로직 수행
- ex ) Tomcat
- 멀티스레딩를 통해 요청 동시 처리

<Web Server vs Web Application Server>
웹 페이지에는 정적 컨텐츠와 동적 컨텐츠가 모두 존재함
(정적 컨텐츠 처리)
정적 컨텐츠는 html 문서가 클라이언트로 보내질 때 함께 보내지지 않고, 클라이언트가 html문서를 받은 후, 그에 맞는 정적 컨텐츠를 서버로 요청하면 그제서야 정적 컨텐츠를 받는다. Web Server는 정적 컨텐츠들만 처리하는데, 이는 기능을 분배하여 서버의 부담을 줄일 수 있고, Application Server까지 가지 않고 앞단에서 빠르게 보내줄 수 있다는 장점이 있다.
(동적 컨텐츠 처리)
사용자의 요청에 맞게 적절한 동적 컨텐츠를 제공해야 하는데, Web Server만 있다면 사용자의 요청에 따른 결과를 모두 미리 만들어 둬야 한다. WAS를 통해 사용자 요청에 따라 데이터를 DB에서 가져와서 비즈니스 로직대로 그때 그때 결과를 만들어서 제공함으로써 자원을 효율적으로 사용할 수 있는 것이다.

<WAS가 Web Server의 기능도 하면 되는 것 아닌가? 분리하는 이유는?>
- > 기능을 분리하여 서버 부하를 방지, 보안 강화, 여러 대의 WAS 연결, 여러 Application Service를 가능하게 하기 위해.
- > 자원 이용의 효율성, 장애 극복, 배포 및 유지보수의 편의성

<Forward Proxy>
- 클라이언트 앞에 위치하여 컴퓨터가 서비스로 보낸 요청을 가로채고 중개자처럼 해당 클라이언트를 대신하여 서버와 통신
<Reverse Proxy>
- 서버 앞에 위치하여 클라이언트(웹 브라우저)가 서버로 보내는 요청을 가로채 해당 웹 서버에 전달하는 서버
- 보안, 성능, 안정성 향상을 위해 구현

<Forward vs Reverse Proxy>

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

프록시에 관한 개념뿐만 아니라 차이점도 알려주셔서 이해가 잘된 것 같습니다!

Forward : 클라이언트 앞에 위치하며 원본 서버가 해당 특정 클라이언트와 직접 통신하지 못하도록 함, 또 다른 외부 서버(다른 컴퓨터)로 요청을 보냄
Reverse : 원본 서버 앞에 위치하며 어떤 클라이언트도 원본 서버와 직접 통신하지 못 하도록 함, 내부(같은 컴퓨터)의 다른 서버로 요청 보냄