관리 메뉴

공부한것들을 정리하는 블로그 입니다.

Web Server, Server Side, Client Side 이해 본문

CS 운영체제 네트워크 등/공부

Web Server, Server Side, Client Side 이해

호 두 2019. 11. 19. 11:06
반응형

웹 서버(Web Server)

웹을 서비스하는 컴퓨터

웹 페이지는 HTML이므로 웹 서버는 HTML 파일들을 모아놓고 서비스하는 컴퓨터

모든 컴퓨터는 서버가 될 수 있지만 컴퓨터를 웹 서버로 만들기 위해서는 웹 서버 프로그램을 설치해야 한다(PWS[Personal Web Server], IIS, Apache )

 

웹 서버 종류

Windows: IIS, PWS, httpds, NCSA

Unix, Linux: Apache, NCSA

Mac: MacHTTP

 

웹 애플리케이션

웹을 기반으로 실행되는 애플리케이션을 일컫는다

웹 브라우저에서 웹 서버에 서비스를 요청하고 웹 서버에서 웹 애플리케이션 서버(WAS)에 요청을 하고 WAS DB에 가서 

처리를 한 뒤 결과를 웹 서버에 전송하고 웹 서버가 웹 브라우저에 다시 결과를 반환하는 방식

 

웹 클라이언트(Web Client)

어떤 서비스를 요청하는 역할

웹 서버에 자료를 요청하기 위해 HTTP를 사용하는 클라이언트 프로그램

웹 페이지를 요청하는 것과도 같다 -> 하지만 웹 페이지 요청은 대부분 웹 브라우저가 하므로 웹 클라이언트를 웹 브라우저라고 일컫기도 한다

웹 브라우저는 개개인의 컴퓨터에 설치되어있고 HTML, CSS, JS들이 실행되는 곳은 우리 컴퓨터이다

 

서버 사이드 Server side(Back End)

ASP.Net, JSP, Flask, PHP, Node.js 등의 언어로 HTML, CSS, JS 파일들의 내용을 만들어서 화면으로 전달하는 역할

웹 서버측에서 하는 작업들-웹 브라우저(클라이언트)에서 넘어온 자료를 DB에 저장하거나 수학적 계산을 하여 결과를 만들어내는 등의 역할

Back End는 서버가 있으므로 영속성이있으며 DB를 이용할 수도 있다

 서버 측 언어 (PHP ) : 데이터베이스에서 레코드를 검색하고, 상태 비 저장 HTTP 연결을 통해 상태를 유지하며

보안이 필요한 많은 작업을 수행 이 언어들은 서버에 상주하며 이 프로그램은 사용자에게 노출 된 소스 코드를 갖지 않는다

 

ServerSide 언어 종류

PHP, ASP, JSP(java), ASP.Net, Node.js, Flask

 

이건 DBMS의 정보와 기타 여러가지 정보를 조합해서 사용자(웹브라우저)에게 보내줄 [HTML tag, CSS, Javascript]를 고정적이지 않고, 일부 또는 전부 필요에 따라 바꾸어 보내는 역할

HTTP 통신에 있어서 브라우저의 주요 기능 중 하나는 서버에서 HTML 문서를 수신하는 것인데, 브라우저에서 요청한 HTML 문서가 PHP 등의 서버 사이드 스크립트 언어를 포함하고 있으면 서버 쪽에서 이 부분을 처리하여 결과를 브라우저에 송신

 

데이터를 서버 사이드로 처리할 경우의 장단점

(클라이언트 사이드로 처리할 때와 비교)

장점: 서버 관리자의 입장에서, 데이터 위조의 가능성을 줄일 수 있다

서버 쪽의 데이터가 확실한 진위이며 클라이언트 쪽에서 위조해서는 안 되는 민감한 데이터의 경우 서버 사이드로 처리해야 한다

ex) 인터넷 뱅킹의 이체 관련 처리나 MMORPG의 게임 아이템 관련 처리에서는 클라이언트 사이드 처리를 최소화해야 한다

한편 클라이언트 사용자의 입장에서는 클라이언트 컴퓨터의 처리 부담이 줄어든다.

단점: 서버 관리자의 입장에서, 서버의 처리 부담이 커져 결과적으로 서버 비용이 늘어날 수 있다.

 

서버 사이드 스크립트 언어(server-side script)

웹에서 사용되는 스크립트 언어 중 서버 사이드에서 실행되는 스크립트 언어

서버에서 해석해서 구동되는 스크립트

DB Access가 주 목적

ASP/ASP.NET (*.asp/*.aspx) C 서버 스크립트 (*.c) 자바 서버 페이지를 통한 자바 (*.jsp) 

서버 사이드 자바스크립트를 사용한 자바스크립트 (*.ssjs) PHP (*.php) 펄 (*.pl) SMX (*.smx)

파이썬 (*.py) 루비 (*.rb) Node.js (*.js)

 

클라이언트 사이드 Client side(Front End)

Front End(앞단의 끝)이라 불리는 이유는 보여주는 단이라는 의미

Back End에서 보내준 HTML, CSS, JS 등의 파일들을 읽어서 화면에 보여주는 역할

서버가 작업해야 할 부분 중 클라이언트가 할 수 있는 작업을 스스로 처리 -> 서버의 작업량을 줄일 수 있다

대부분의 스크립트 언어가 이곳에 포함

동적인 페이지를 만들어줄 필요가 없다면 확장자가 HTML인 파일만 만들어도 된다

클라이언트 측 언어 (자바 스크립트와 같은)는 브라우저에 상주하며 브라우저에서 실행되지만 클라이언트 측 스크립팅은 일반적으로 사용자의 웹 브라우저에서 클라이언트 측에서 실행되는 웹상의 컴퓨터 프로그램 클래스를 나타낸다

 자바 스크립트는 사용자가 볼 수 있으며 쉽게 수정할 수 있으므로 보안을 위해 자바 스크립트를 사용해서는 안된다

HTML,CSS,Javascript  Client Side 에서 동작하는데 필요한 코드

인터넷익스플로러 와 같은 웹브라우저에서 그대로 받아서 처리된다

자바스크립트는 웹브라우저(사용자 컴퓨터)에서 실행되는 언어

네트워크의 한 방식인 클라이언트-서버 구조의 클라이언트 쪽에서 행해지는 처리

HTTP 통신에 있어 브라우저의 주요 기능 중 하나는 서버에서 수신한 HTML 문서를 해석하여 화면에 표시해 주는 것인데

HTML 문서가 동적인 부분을 갖고 있지 않다면 문서 수신이 끝나고부터는 서버와 교신하지 않고 브라우저가 클라이언트 사이드에서 처리하여 화면에 내용을 표시

MMORPG(대규모 다중 사용자 온라인 롤플레잉 게임) 그래픽 처리나 소리 처리의 대부분을 클라이언트 사이드로 처리(서버 부담을 줄이기 위해)

 

데이터를 클라이언트 사이드로 처리할 경우의 장단점

(서버 사이드로 처리할 때와 비교)

장점 : 서버 관리자의 입장에서 서버의 처리 부담을 줄여서 결과적으로 서버 비용을 줄일 수 있다.

처리하는 데이터가 보안에 민감한 경우, 클라이언트 내에서 처리가 가능한 부분에 대해서는 통신에 대비하여 암호화할 필요가 없으므로 암호화 소요가 줄어든다.

단점 : 서버 관리자의 입장에서, 클라이언트 사이드에서 처리한 결과를 되받아야 하는 경우, 결과의 진위성을 알기 어렵다

반대로 말하면 클라이언트 쪽에서 데이터를 위조하기 쉽다. 따라서 서버 쪽의 데이터가 확실한 진위이며 클라이언트 쪽에서 위조해서는 안 되는 민감한 데이터의 경우 서버 사이드로 처리

ex) 인터넷 뱅킹의 이체 관련 처리나 위의 MMORPG의 게임 아이템 관련 처리에서는 클라이언트 사이드 처리를 최소화해야 한다.

클라이언트 사용자의 입장에서, 클라이언트 컴퓨터의 처리 부담이 많아진다.

 

클라이언트 사이드 스크립트 언어(client-side script)

브라우저에서 해석해서 구동되는 스크립트

브라우저의 객체를 제어

 

웹에서 사용되는 스크립트 언어 중 클라이언트 사이드에서 실행되는 스크립트 언어

자바스크립트, VB스크립트

 

클라이언트 서버 모델(client–server model)

클라이언트 서버 모델(client–server model)은 클라이언트와 서버로 나뉘는 네트워크 아키텍처

웹 시스템도 확장된 '클라이언트 서버 시스템'으로 분류되나, 일반적으로는 클라이언트 서버 시스템이라고 하면 웹 시스템이 나오기 이전의, 사용자 PC에는 클라이언트가 설치되어 화면을 처리하고 서버에서는 자료를 처리하는 시스템을 일컫는다

클라이언트(영어: client 고객[*])는 서비스를 사용하는 사용자 혹은 사용자의 단말기를 가리키는 말

 

서버(Server)란 서비스를 제공하는 컴퓨터이며, 다수의 클라이언트를 위해 존재하기 때문에 일반적으로 매우 큰 용량과 성능을 가지고 있었다. 그러나 웹 2.0에서는 클라이언트이자 동시에 서버인 환경이 많아지면서 변화가 일고 있다.

 

참조https://ko.wikipedia.org/wiki/%ED%81%B4%EB%9D%BC%EC%9D%B4%EC%96%B8%ED%8A%B8_%EC%84%9C%EB%B2%84_%EB%AA%A8%EB%8D%B8




 

 

서버 사이드 스크립트 언어란?

 웹에서 사용되는 스크립트 언어 중 서버 사이드에서 실행되는 스크립트 언어를 뜻합니다. 데이터를 서버사이드로 처리할 경우 클라이언트사이드로 처리할 때와 비교하여 데이터 위조의 가능성을 줄이고, 클라이언트 사용자 입장에서는 클라이언트 컴퓨터의 처리 부담이 줄어듭니다. 단점으로는 서버의 처리부담이 커져서 서버 비용이 늘어날 수 밖에 없습니다.

 

1.Server Side Script language 종류

* ASP/ASP.NET (*.asp/*.aspx)

* C 서버 스크립트 (*.c)

* 자바 서버 사이드를 통한 자바 (*.jsp)

* 서버 사이드 자바스크립트를 사용한 자바스크립트 (*.ssjs)

* PHP (*.php)

* 펄 (*.pl)

* 파이썬 (*.py)

* 루비 (*.rb)

* Node.js (*.js)

 

2. PHP, JSP, ASP 특성

 

1. PHP(C++) : 

1)중소규모에서 가장 대중적이고, 무난하게 사용되는 언어이다.

2)모든 운영 체제에서 구현 가능하다.

3)DB와 쉽게 연동되고 속도가 상대적으로 빠르다.

4)비용이 저렴하다.

5)이식성이 좋다.

6)개발자 인건비가 상대적으로 저렴하다.

7)생산성 자체가 빠르다.

8)컴포넌트를 사용할 수 없고, 보안에 취약하다.

 

2. JSP(JAVA) :

1)JAVA의 장점을 그대로 사용하였다.

2)중규모 이상 프로젝트에 주로 사용된다.

3)DB연동이 까다롭고, Virtual Machine기반이기 때문에 속도가 상대적으로 느리다.

4)벤더가 많아 지원이 원활하다.

5)Spring과 같은 프레임워크를 겸용하는 경우가 많다.

6)윈도우, 리눅스 서버 상관없이 이용가능하다.

7)아키텍처 구축이 힘들고, 비용이 많이 든다.

8)개발자 인건비가 상대적으로 높다.DB연동이 까다롭다.

 

3. ASP(visual basic) :

1)Visual studio툴이 있다. 

2)윈도우 서버에서만 사용가능하다.

3)컴포넌트를 사야하기 때문에 높은 비용이 든다.

4)기본적으로 프레임워크 자체가 무겁다는 평이 많다.

5)Server Side Script를 지원한다.

 

3. July 2015 개발자들의 언어 선호도

2015년 상반기에서 선호도가 가장 많이 오른 프로그래밍 언어는 C++이다. 작년과 비교했을 때, C++은 3.1% 올랐고, 뒤 따라 자바(+2.0%), C#(+1.6%) 그리고 Python(+1.6%)이 올랐다. 인기의 이유는 커뮤니티에 의해 채택 된 새로운 C++11의 도입 때문이다. 이번 C++11은 여러면에서 C++언어를 향상시켜준다.

 

반응형
Comments