-
Notifications
You must be signed in to change notification settings - Fork 0
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
Changes from 1 commit
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
<Static Pages vs Dynamic Pages> | ||
- 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> | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 프록시에 관한 개념뿐만 아니라 차이점도 알려주셔서 이해가 잘된 것 같습니다! |
||
Forward : 클라이언트 앞에 위치하며 원본 서버가 해당 특정 클라이언트와 직접 통신하지 못하도록 함, 또 다른 외부 서버(다른 컴퓨터)로 요청을 보냄 | ||
Reverse : 원본 서버 앞에 위치하며 어떤 클라이언트도 원본 서버와 직접 통신하지 못 하도록 함, 내부(같은 컴퓨터)의 다른 서버로 요청 보냄 |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
추가개념 설명 감사합니다!