analogcoding

Interact with Server - what is Web Architecture 본문

Be well coding/Learn more

Interact with Server - what is Web Architecture

be well 2019. 6. 8. 15:15

 

Web Architecture

 

웹 서비스는 크게 서버와 클라이언트 (DB)로 구성된다.

 

웹 서비스 아키텍처는 크데 3가지의 구조로 나누어져있다.

 

브라우저 위에서 클라이언트가 구동하고 서버에 클라이언트가 무언가를 요청하면 서버가 데이터베이스에서 요청한 것을 찾는다.

 

 

 

유저가 보는 부분                                               리소스 요청과 응답 처리                                                      리소스 저장

 


Client

네트워크를 통하여 서버라는 다른 컴퓨터 시스템 상의 원격 서비스에 접속할 수 있는 응용 프로그램이나 서비스를 말한다. 
(서비스를 사용하는 사용자 혹은 사용자의 단말기를 칭하기도 한다.)

 

브라우저

 

HTML, JS , CSS 등 각 언어로 작성한 코드를 2진수만 알아 들을 수 있는 컴퓨터가 알아볼 수 있게 하는 역할을 가지고 있다.

브라우저가 하는 일에 대한 짧은 만화. Deviantart에 있는 원본

 

 

 

ajax 

(Asynchronous Javscript and XML)

 

에이잭스는 비동기적인 웹의 제작을 위해 아래와 같은 조합을 이용하는 웹 개발 기법이다.

 

(표현 정보를 위한 HTML  과 CSS 와 동적인 화면 출력 및 표시 정보와의 상호작용을 위한 DOM , JAVASCRIPT 등 함께 사용할 수 있는 
기술의 묶음을 칭한다.)

 

AJAX 의 특성.

 

이전 웹 서버는 요청된 내용에 따라서 데이터를 가공하여 새로운 웹 페이지를 작성하고 응답으로 되돌려준다. 이때 최초에 폼을 가지고 있던

페이지와 사용자가 이 폼을 채워 결과물로서 되돌려 받은 페이지는 일반적으로 유사한 내용을 가지고 있는 경우가 많다.

결과적으로 중복되는 HTML 코드를 다시 한번 전송을 받음으로써 많은 대역폭을 낭비하게 된다.

대역폭의 낭비는 금전적 손실을 야기할 수 있으며 사용자와 대화(상호 반응)하는 서비스를 만들기 어렵게도 한다.

 

반면에 Ajax 애플리케이션은 필요한 데이터만을 웹서버에 요청해서 받은 후 클라이언트에서 데이터에 대한 처리를 할 수 있다.

웹서버에서 전적으로 처리되던 데이터 처리의 일부분이 클라이언트 쪽에서 처리 되므로 웹 브라우저와 웹 서버 사이에 교환되는

데이터량과 웹서버의 데이터 처리량도 줄어들기 때문에 애플리케이션의 응답성이 좋아진다. 또한 웹서버의 데이터 처리에 대한 부하를

줄여주는 일이 요청을 주는 수많은 컴퓨터에 대해서 일어나기 때문에 전체적인 웹 서버 처리량도 줄어들게 된다.

 

장점

  • 페이지 이동없이 고속으로 화면을 전환할 수 있다.
  • 서버 처리를 기다리지 않고, 비동기 요청이 가능하다.
  • 수신하는 데이터 양을 줄일 수 있고, 클라이언트에게 처리를 위임할 수도 있다.

단점

  • Ajax를 쓸 수 없는 브라우저에 대한 문제가 있다.
  • HTTP 클라이언트의 기능이 한정되어 있다.
  • 페이지 이동없는 통신으로 인한 보안상의 문제.
  • 지원하는 Charset이 한정되어 있다.
  • 스크립트로 작성되므로 디버깅이 용이하지 않다.
  • 요청을 남발하면 역으로 서버 부하가 늘 수 있음.

 

서버

 

서버(server)는 클라이언트에게 네트워크를 통해 서비스하는 컴퓨터를 의미한다.  인터넷도 수많은 서버들이 거미줄처럼 얽혀서 형성된 것이다. 홈페이지를 운영하려면 서버가 반드시 필요하며, 보통 어느정도 규모가 있는 기관에서는 데이터베이스, 웹 어플리케이션 서버 등등에 방화벽,라우터 등이 붙어 네트워크를 형성한다.

 

API


(Application Programming Interface)

 

API 는 응용 프로그램에서 사용할 수 있도록, 운영체제 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다.

주로 파일 제어, 창 제어, 화상 처리, 문자 제어 등을 위한 인터페이스를 제공한다.

 

 

HTTP

 

(HyperText Transfer Protocol)

 www상에서 정보를 주고받을 수 있는 프로토콜이다. 주로 HTML 문서를 주고받는 데에 쓰인다.

 

 

HTTP는 클라이언트와 서버 사이에 이루어지는 요청/응답(request/response) 프로토콜이다. 예를 들면, 클라이언트인 웹 브라우저가 HTTP를 통하여 서버로부터 웹페이지나 그림 정보를 요청하면, 서버는 이 요청에 응답하여 필요한 정보를 해당 사용자에게 전달하게 된다. 이 정보가 모니터와 같은 출력 장치를 통해 사용자에게 나타나는 것이다.

 

주로 HTML 문서를 주고받는 데에 쓰인다.

 TCP UDP를 사용하며, 80번 포트를 사용한다.

 

작동방식은 클라이언트가 Request 를 서버에 보내면 서버에서 Response 를 다시 클라이언트에게 보낸다.

 

Request  Response 모두 같은 구성으로 Header 와 Body 로 나누어져있다.

 

Header : 어디서? 무엇을? 어떻게?

 

Body : Method

 

특징: 한 번의 한 요청만 수행 , 모든 요청에 대해 독립적이다.

'Be well coding > Learn more' 카테고리의 다른 글

React start  (0) 2019.06.11
N-Queens  (0) 2019.06.10
Object.create() & Class & Super Method  (0) 2019.06.03
Inheritance Patterns  (0) 2019.06.03
Data structure - part.2  (0) 2019.05.29
Comments