웹 서비스는 http 프로토콜을 이용하여 클라이언트와 서버의 통신을 의미한다. 클라이언트가 서버에 요청을 하면 서버가 응답을 하고, 웹 서버는 http request를 받고 html, css, js 등 정적인 정보를 반환한다.
웹서버
프록시 서버는 클라이언트가 특정 웹서비스에 직접 요청하고 응답하지 않게 대신 요청하고 응답을 클라이언트에 전달(forward)을 해준다. 포워드 프록시에는 캐쉬 기능이 있기 때문에 자주 사용하는 컨텐츠에 대해서는 빠르게 응답을 할 수 있다.
http 요청을 특정 네트워크 또는 서버로 전달하는 역할을 수행하는 서버이다. 특히, 외부로 오픈되지 않은 내부 서버에 접근할 수 있도록 요청과 응답을 전달하는 역할을 한다. 본안을 위하여 네트워크를 분리한 경우 사용한다.
location /some/path/{
proxy_pass http://www.example.com/link/;
}
location ~ \.php {
proxy_pass http://127.0.0.1:8000;
}
앱은 db를 질의하고 데이터를 가공하여 제공하는 역할을 담당한다. django, flask, php, jsp, asp 등을 예로 들 수 있다. 비즈니스 로직이 앱에서 구현.
클라이언트에서 서버에 http요청을 하면 웹 서버가 정적 파일에 대한 요청인지 확인 후, 맞으면 그대로 응답하고 아니라면 WAS에 요청을 넘긴다. WAS는 해당 요청을 APP이 알 수 있는 형태로 넘긴 후 APP에서 데이터를 가공 및 처리하여 다시 클라이언트에 응답한다.