웹 서버 개념

yoon__0_0·2024년 5월 14일
0

이어드림 수업

목록 보기
29/103

클라이언트와 서버 구조

  • 클라이언트 : 서버에게 자료나 데이터를 요청
  • 서버 : 클라이언트의 요청에 응답하여 원하는 데이터를 제공해줌
  • 웹서버의 경우 응답을 html, css, js의 웹 프로그래밍 언어로 응답

예시
우리가 컴퓨터에서 EC2에 접속시에는,
클라이언트 = 나 (imac) , 서버 = EC2

웹서버란?

  • 웹 브라우저와 같이 클라이언트로부터 http 요청을 받아들이고 html 문서와 같이 웹페이지를 반환하는 컴퓨터 프로그램
  • 혹은 이의 기능을 제공하는 컴퓨터
  • http : 7계층으로 웹 상에서 데이터를 전달할 때 사용하는 프로토콜
  • https : http에 보안기능을 추가한 개념


웹서버의 기본구조




웹서버의 종류

1) Apache HTTP 서버

  • 프로세스/스레드 기반 구조
  • 사용자의 HTTP 요청이 올때마다 프로세스 생성
  • 1000개 요청 -> 1000개의 프로세스 요청
  • 따라서 사용자 요청이 많아지면 -> 프로세스 생성으로 인한 메모리 부족 및 CPU과부화
  • 커넥션 1만개가 넘어가면 하드웨어 성능에 상관 없이 더이상 커넥션을 형성하지 못하는 문제 발생

2) NGINX

  • 비동기 이벤트 기반 구조
  • 수만이 요청이 들어가도 비동기 방식으로 대기시켜서 먼저 등록된 요청부터 처리
  • 요즘은 nginx를 더 많이 사용함

WSGI

  • web server gateway interface
  • 웹 서버와 웹 애플리케이션을 이어주는 역할을 하는 인터페이스
  • gunicorn, uwsgi가 있으며, 보통 guincorn을 많이 사용함
  • 즉, gunicorn은 웹서버가 받아들인 요청을 플라스크에 전달해주는 역할

웹 애플리케이션

  • 웹서버는 정적인 페이지를 띄워주는 역할을 하기 때문에 동적 페이지를 처리하는 서버가 필요함
  • 동적 페이지를 처리하는 것이 바로 웹 애플리케이션
  • 플라스크, 장고, 루비, 스프링을 많이 사용함
  • 플라스크가 파이썬 언어고 가장 가벼움.
  • 현재는 장고를 가장 많이 사용

API

  • application programming interface
  • 애플리케이션 프로그래밍 인터페이스
  • 컴퓨터나 컴퓨터 프로그램 사이의 연결을 의미
profile
신윤재입니다

0개의 댓글