IT/Server

Web Server, Server Side, Client Side 이해

나27 2017. 11. 10. 10:30
반응형

Web Server, Server Side, Client Side 이해

 

웹 서버(Web Server)


웹을 서비스하는 컴퓨터


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


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


웹 서버 종류

Windows: IIS, PWS, httpds, NCSA

Unix, Linux: Apache, NCSA

Mac: MacHTTP

 

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


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

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

 

웹 클라이언트(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 연결을 통해 상태를 유지하며

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

 

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


이건 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

 

반응형