WSGI(Web Server Gateway Interface)
파이썬에서 어플리케이션 즉 파이썬 스크립트가 웹 서버와 통신하기 위한 인터페이스, 프로토코 개념으로도 이해할 수 있습니다. WSGI는 서버와 앱 양단으로 나뉘어져 있으며, WSGI 리퀘스트를 처리하려면 서버에서 환경정보와 콜백함수를 앱에 제공해야 합니다. 그리고 그 앱은 그 요청을 처리하고 콜백함수를 통해 서버에 응답합니다.
방식
요청 -> 웹 서버 -> WESGI Server(middleware) -> WSGI를 지원하는 웹 어플리케이션(Django; flask 등)
웹 서버가 웹 애플리케이션과 통신하는 방법과 웹 애플리케이션을 연결하여 하나의 요청을 처리하는 방법에 대한 설명서
즉, 여러 종류의 웹 서버와 여러 종류의 웹 애플리케이션이 모두 통신이 가능하도록 하기 위한 규약이라고 할수 있습니다.
웹 서버와 웹 애플리케이션
웹 서버는 클라이언트의 정적 웹 페이지 요청을 처리하는 프로그램을 말합니다.
웹 애플리케이션은 웹 서버가 동적 웹 페이지 요청을 처리할 수 있게 도와주는 역할을 합니다.
동적인 웹 페이지를 만들기 위해서는 웹 서버와 웹 애플리케이션이 서로 소통을 해야 합니다.
WSGI Server(middleware)
웹 서버와 WSGI를 지원하는 웹 어플리케이션 사이에서 동작하며, 아래와 같은 일을 합니다.
- 환경변수가 바뀌면 타겟 URL에 따라서 리퀘스트의 경로를 지정해줌
- 같은 프로세스에서 여러 애플리케이션과 프레임워크가 실행됨
- XSLT 스타일시트를 적용하는 것과 같이 전처리함
Werkzeug
Werkzeug는 포괄적인 WSGI 웹 애플리케이션 라이브러리로 WSGI 응용 프로그램을 위한 다양한 유틸리티의 단순한 모음으로 시작하여 가장 발전된 WSGI 유틸리티 라이브러리 중 하나입니다.
Werkzeug는 Flask에서 기본적으로 사용하는 WSGI 미들웨어로, WSGI 미들웨어 역할 뿐만 아니라 웹 서버의 역할을 할 수도 있기에 별다른 설정 없이도 Flask 앱을 실행할 수 있습니다.
'Python > FLASK' 카테고리의 다른 글
[플라스크] - 비즈니스 로직 (0) | 2022.11.27 |
---|---|
Flask - 인스타그램 클론코딩(댓글 수정, 삭제 구현) (0) | 2022.11.20 |
인스타그램 클론코딩하기 (0) | 2022.11.06 |
오류 모음집 (0) | 2022.10.09 |
직렬화/ 역직렬화 처리하기 (0) | 2022.09.12 |