[작성일: 2023. 03. 27]
CGI(Common Gateway Interface)
- CGI 이전의 웹서버는 사용자가 특정 경로를 입력하면 리소스를 제공함.
- CGI는 사용자의 입력값을 인자(파라미터)로 받아 프로그램을 동작시켜 실행 결과를 웹으로 제공함.
- 웹 서버에서 동적인 페이지를 보여주기 위해 프로그램을 구동하는 기술
CGI 동작 구조
- 통신 request(요청)이 웹 서버로 전달
- 웹 서버는 요청에 있는 주소가 CGI 프로그램에 매핑이 되는지 확인
- 매핑 실패 시 오류, 매핑 성공 시 실행(환경변수 + 표준입력 형태료 요청이 전달 됨.)
- 웹 서버는 CGI 프로그램이 표준 출력으로 보낸 내용을 그대로 돌려줌.
- static wep page (거의 쓸 일 없음) 기업 소개 페이지
- dynamic web page 소셜 네트워크 페이지, 데이터가 동적이며 사용자의 행동에 민감하게 반응함. 추천 알고리즘, 팔로우, 좋아요 표시한 게시물 등
서블릿(Servlet)
- 서버(Server) + 애플릿(Applet)의 합성어
- 자바 웹 서버로 웹 페이지를 제공할 때 동적 데이터 제공을 도와주는 역할
- Guest님 환영합니다 -> 홍길동님 환영합니다. 를 도와주는 자바 소프트웨어 컴포넌트
- web browser request > response ➡ web browser request > servlet > response
- 문자열의 해석(파싱, parsing)에 들어가는 시간을 줄이고, 비즈니스 로직의 개발에 집중이 가능함.
서블릿과 CGI의 차이점
- CGI는 브라우저에서 웹 서버로 요청이 간 경우 각각에 대한 프로세스를 만듦.
- 대량 트래픽 발생 시, 부하(load) 발생
- Servlet은 프로세스를 만들지 않고 프로세스는 1개이며, 내부의 스레드로 처리함.
- 스레드 개수는 일정량 이상의 요청이 들어오면 대기
🐣 해당 게시글은 입문 개발자가 요약/정리한 글이므로 틀린 내용이나 오타가 있을 수 있습니다.