참조 & 더 자세한 설명
- cupjoo.tistory.com/54
- dev-youngjun.tistory.com/67
- velog.io/@seanlion/cgi
- ts2ree.tistory.com/21
- hi-datalab.tistory.com/32
- hyoje420.tistory.com/25
- gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html
1. Web Server
우리는 크롬 등의 웹 브라우저를 통해 인터넷을 사용한다
이 웹 브라우저에 페이지를 요청하면 요청을 받은 서버가 페이지를 반환해준다
이 때, 모든 데이터가 서버에 저장되어 있어 항상 정해진 페이지를 출력하는 경우와 (정적 페이지), DB에서 필요한 데이터들을 가공해 매번 다른 페이지를 출력할 수 있는 경우가 있다 (동적 페이지)
엔진 : Apache, IIS(Windows 전용), Nginx 등
2. Static Pages & Dynamic Pages
차이 한 줄 요약 : 페이지를 요청한 사용자의 정보와 현재 시점에 따라 내용이 변할 수 없느냐/있느냐
정적 페이지
- 모든 데이터가 서버에 미리 저장되어 있음
- HTML, CSS, Javascript, 이미지 정도로만 이루어짐
- 사용자가 페이지를 요청할 시 서버는 이미 만들어져 있는 HTML 파일(정적 페이지)을 반환하는 일만을 한다
- Javascript로 동적 제어를 할 수 있긴 하지만, 그마저도 모두 사전 정의된 동작이므로 정적 페이지라고 표현한다고 한다
- 즉 Javascript : client-side 스크립트 언어 (client 단에서 코드가 돈 후 결과가 나오는 것)
동적 페이지
- 사용자의 정보 & 사용자가 요청한 정보 & 사용자가 요청한 시점 등등의 데이터를 가지고 연동된 DB로부터 데이터를 가져와 새로 가공한 페이지를 반환함
- 즉 데이터의 '처리'가 필요한 페이지
- 대부분의 웹 페이지는 동적 페이지임
- PHP, JSP, ASP, Python 등등을 통해 구현
- 이들은 server-side 스크립트 언어라고 한다 (server단에서 코드가 돈다)
1. PHP (Hypertext PreProcessor)
- 오픈소스라 상용으로 사용해도 무료
- 주요 OS들과 연동이 원활해 범용적으로 사용 가능
- 빠르고 가볍고 싸지만 보안에 취약하다고 한다
- 해외에서는 많이 사용함
2. JSP (Java Server Page)
- Java 기반의 서버 사이드 스크립트 언어
- 라이센스 비용이 들고, 익히기 어려우나 아주 안정적인 유지보수 가능
- Tomcat / Spring 프레임워크
3. ASP (Active Server Page)
- 윈도우 환경에 최적화 but 라이센스 비용 비쌈
- IIS / ASP.NET 프레임워크
3. CGI (Common Gateway Interface, 공통 게이트웨이 인터페이스)
정의 : 웹 서버와 외부 프로그램 사이에서 정보를 주고받는 방법이나 규약들
웹 서버가 클라이언트에게 응답을 보내기 위한 애플리케이션과의 통신을 도와주는 인터페이스이다
즉, 동적 페이지를 사용자에게 제공하기 위해 웹 서버 내에 프로그래밍 기능이 들어가는 방식을 말한다
PHP, ASP 등을 사용하면 DB 연동을 통해 동적 웹 페이지를 구현할 수 있다
그러나 웹 서버에서 모든 처리를 하게 되면 시스템에 부하가 커져 문제가 발생할 수 있다
결론 : 웹 서버에서 동적 페이지를 구현한 것
4. WAS : Web Application Server
드디어 WAS다 (사실 Web과 WAS의 차이에 대해 글을 쓸려다가 여기까지 왔다...)
위의 CGI에서의 문제점을 해결하기 위한 게 WAS이다
WAS는 Web Server와 DB 서버 사이의 미들웨어이다 : DB 연동 및 동적 페이지 처리 등은 WAS에서 담당한다
참고로 WAS에서 Web Server 역할까지도 할 수 있다
그래도 굳이 Web Server를 분리해서 Web-WAS-DB (흔히 말하는 3-tier)로 사용하는 이유는 성능이 훨씬 좋기 때문이다
정적 페이지같은 경우는 Web Server에서 제공하는게 훨씬 빠르고 안정적이기 때문에 역할을 분리해서 사용한다고 한다
보통 JSP로 구현한다
엔진 : Apache Tomcat, Oracle WebLogic, 티맥스 Jeus 등
스크립트 언어 한 짤 요약
참고로 HTML은 프로그래밍 언어가 아니라 마크업 언어이다
끝
'공부 > 기타' 카테고리의 다른 글
[RSS] RSS란? AWS 최신 소식 Slack으로 받아보기 (0) | 2022.02.17 |
---|---|
[Cloud] Cloud란? Cloud를 사용하는 이유 요약 (0) | 2021.07.15 |
[SAP] SAP 관련 용어/포트 정리 (0) | 2021.04.29 |
[Network] Bastion Host의 이해 (= Proxy) (0) | 2021.01.12 |
[PHP] 서버에 부하 넣는 Web php 코드 (0) | 2021.01.08 |
댓글