WSGI(Web Server Gateway Interface)
WSGI란 웹 어플리케이션과 웹 서버간의 통신 규약으로 파이썬 언어로 작성한다.
웹 서버와 웹 어플리케이션 사이에 위치하여 서로 통신이 가능하도록 도와준다.
Web Server
- 웹 서버는 클라이언트에서 요청을 보내면 정적인 컨텐츠(HTML, CSS, image 등)들을 보여준다.
- 대표적으로는 Apach, Nginx가 있다.
Web Application
- 웹 어플리케이션에서는 웹 서버에서 처리하지 못하는 동적인 컨텐츠들을 처리해서 웹 서버에게 보내준다.
- 대표적으로는 Django, Flask가 있다.
WSGI의 역할
기본적으로 웹 서버는 정적인 페이지 밖에 보여주지 못한다. 그렇기 때문에 웹 어플리케이션의 도움을 통해서 동적인 페이지를 보여줄 수 있는 것이다. 하지만 웹 서버는 웹 어플리케이션에서 사용하는 파이썬 코드를 이해하지 못한다.
그래서 서로 소통을 할 수 있도록 WSGI를 한다. 즉, 웹 서버와 웹 어플리케이션 간의 인터페이스 역할을 수행하는 것이다.
전체적인 흐름은 위와 같다.
- 클라이언트에서 요청을 보낸다.
- 웹 서버에서 요청을 받아서 만략 동적인 페이지를 요청했다면 WSGI 서버(미들웨어 라고도 함)를 호출한다.
- WSGI 서버는 WSGI를 사용하는 웹 어플리케이션(Djang, Flask)를 호출한다.
- 호출받은 웹 어플리케이션은 요청에 따라 처리를 수행한다.
- 수행 결과를 WSGI 서버를 통해 웹 서버로 전달하고, 웹 서버는 클라이언트로 보낸다.
Werkzueg
Werkzueg란 WSGI 웹 어플리케이션 라이브러리 모음으로 WSGI와 호환 가능한 웹 응용 프로그램을 만드는데 사용한다.
'Flask-Study' 카테고리의 다른 글
Ep15 : flask 인스타그램 클론 코딩 - 댓글 수정, 삭제 기능 구현 (0) | 2022.11.18 |
---|---|
Werkzeug의 PathConverter (0) | 2022.11.13 |
Ep13 : Flask 인스타그램 클론코딩 - 게시글 저자 삭제 구현 (1) | 2022.10.31 |
오류 및 내용 정리 (0) | 2022.10.06 |
Ep10 : CORS / CSR / SSR 알아보기 (0) | 2022.09.19 |