아파치, 톰캣, Nodejs 차이
- 서버측 프로그램 언어 : PHP, JSP, Nodejs(Javascript 기반)
- 서버 : 아파치, 톰캣, Nodejs
- 서버란 ? - 사용자가 브라우져를 통해 네이버에 접속한다고 한다면, 브라우져 주소표시줄에 http://naver.com 라고 치면 됩니다. 이 행위를 요청이라고 한다. 서버란, 이 사용자의 요청을 기다리고 그 요청에 따른 데이터(HTML, CSS, JS, Image 등)을 전송해주는 프로그램이다.
=> 언어와 서버의 쌍쌍바? PHP - 아파치 / JSP - 톰캣 / NodeJS (혼자)
* 왜 NodeJS는 혼자일까?
NodeJS 는 Javascript 언어를 사용하지만, 언어 해석/서버 혼자 담당한다. 또한 대부분의 자바스크립트가 웹 브라우저에서 실행되는 것과는 달리, Node.js는 서버 측에서 실행된다.
1) PHP - 아파치(php소스코드 담는 저장소)
- 접근 : 사용자 PHP 접근 (asdf.php) -> 아파치 -> PHP 해석 -> 사용자
- 사용자가 사이트 url로 접속하면,
아파치가 php 파일 접근 도와주고
php 엔진이 php 코드 해석해서 사용자에게 보여줌
2) JSP - (아파치(html/css)) && 톰캣(jsp)
* 요새는 톰캣만 쓰기도 함
- 접근 : 사용자 JSP 접근 (asdf.jsp) -> 톰캣 -> JSP 해석 -> 사용자
사용자 html, css 접근 (asfd.html) -> 아파치 -> HTML / CSS 해석 -> 사용자
- 사용자가 사이트 url로 접속하면,
아파치가 html/css 전담, 사용자에게 해당 파일 보여줌
톰캣이 jsp 전담, 사용자에게 해당 파일 보여줌
3) NODEJS - express(html/css)
- 사용자가 사이트 url로 접속하면,
express가 웹서버 역할, app.get(url) 등 함수가 사용자에게 해당 파일 보여줌
비동기, 선블로킹I/O, 이벤트접근 방식으로 속도 가장 빠름
-> express 안 쓰는 다른 방식 Nginx(서버) -> nodejs