경기도 인공지능 개발 과정/Python

[Django] 웹서버 란?

agingcurve 2022. 6. 9. 10:38
반응형

 

 

웹의 요청을 받고 응답을 하는 것이 웹서버의 역할임 

웹서버는 정적인 자원을 요청하고 끝내고, 내가 처리할 수 없는 영역인 동적인 부분을 처리하는 역할을 함

요청이 들어오면 사용자에게 다양한 정보를 가지고 들어오게 됨

 

서버는 REQUSET에 추상화를 시킴 

사용자는 REQUSET객체에서 얻어와서 이를 사용함

웹 어플리케이션 서버가 무엇이냐에 따라서 달라지게 됨

 

파이썬은 나름대로 웹 어플리케이션 서버가 있으므로 이를 활용하여 진행함

웹이랑 서버는 클라이언트 쪽에서 무언가를 안하면 안됨

예를 들어

www.naver.com

 

네이버

네이버 메인에서 다양한 정보와 유용한 컨텐츠를 만나 보세요

www.naver.com

에 들어간다고 보자,

그럴경우, ip를 이용해서 찾아가게 된다.

명령프롬프트를 키고 ipconfig를 쳐보자

 

모든 사이트는 IP를 가지고 있어서 그 아이피 주소를 매핑시켜서 도메인 센터라는 것이 있음

도메인 비용이 있으면 돈을 지불할 수 있음 도메인 센터에서 클라이언트 에 접속하고 이를 진행하게 됨

모든 HTTP의 접속과 접속해제하는 부분이 있음, HTTP프로토콜은 한번 접속하면 자체적으로 상태를 유지하지 않음

 

 

 

언어에 맞는 추상화를 하는 다양한 작업이 일어나게 되는데, 웹서버의 인터페이스를 말함

서버 내에서 이를 알려주게 됨 container는 웹 어플리케이션에 올라가야지만 돌아가게 됨 따라서 서버 자체를 서블릿, json컨테이너 등을 활용

 

정적인 자원: HTML / CSS / JAVASCRIPT 등 동적인 자원을 활용하여 이를 활용할 수 있음 자바스크립트 자체는 브라우저에서 동작하므로 정적인 자원임

동적인 자원: 똑같은 페이지를 만듬에도 불구하고 할때마다 페이지 자체가 만들어진채로 만들어지는게 아니라 페이지를 새로 만들어서 클라이언트쪽에는 만들어진 HTML이 만들어져 보여지는것을 동적인 자원이라고 함 

 

예시) 네이버 메인의 경우, 어제와 오늘이 내용이 달라지게 됨 이러한 것은 서버가 동적으로 페이지 내용을 만들어줘서 이를 만들어주게 됨

 

 

 

정리!!

 

Web Server의 개념
 •소프트웨어와 하드웨어로 구분된다.
1) 하드웨어
Web 서버가 설치되어 있는 컴퓨터

 

2) 소프트웨어웹
브라우저 클라이언트로부터 HTTP 요청을 받아 정적인 컨텐츠(.html .jpeg .css )를 제공하는 컴퓨터 프로그램
 

Web Server의 기능

HTTP 프로토콜을 기반으로 하여 클라이언트의 요청을 서비스

 

 
요청에 따라 아래의 두 가지 기능 중 적절하게 선택하여 수행한다.
1) 정적인 컨텐츠 제공WAS를 거치지 않고 바로 자원을 제공한다.
2) 동적인 컨텐츠 제공을 위한 요청 전달
클라이언트의 요청(Request)WAS에 보내고, WAS가 처리한 결과를 클라이언트에게 전달(응답, Response)한다.클라이언트는 일반적으로 웹 브라우저를 의미한다.

Web Server의 예

 Ex) Apache Server, Nginx, IIS(Windows 전용 Web 서버) https://gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html

 

[Web] Web Server와 WAS의 차이와 웹 서비스 구조 - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io

 

 

WAS(Web Application Server)

WAS의 개념
DB 조회나 다양한 로직 처리를 요구하는 동적인 컨텐츠를 제공하기 위해 만들어진 Application Server
HTTP를 통해 컴퓨터나 장치에 애플리케이션을 수행해주는 미들웨어(소프트웨어 엔진)이다.
동적 리소스 처리를 위해 사용
• Django에 WAS를 포함하고 있음

WSGI (Web Server Gateway Interface)

웹서버와 파이썬을 사용한 웹 어플리케이션 개발 환경 간의 인터페이스에 대한 표준 규칙.

WSGI Server(middleware) 

- mod_wsgi, uwsgi, gunicorn, twisted.web, tornado 등이 있다.