본문 바로가기
Web/backend

0. web service intro

by yongmin.Lee 2020. 7. 18.

 

- 웹

  • 한 컴퓨터에서 만든 문서를 다른 컴퓨터에서 볼 수 있도록 하기위해 인터넷으로 전 세계의 컴퓨터들을 거미줄처럼 연결하고 웹 문서를 쉡게 주고 받을 수 있도록 만든 시스템.

 

- 웹의 구성

  • 웹 서버 : 문서, 이미지, 동영상 등의 데이터 저장. 웹 서버로 동작하려면 웹 브라우저로부터 요청을 해석하고 웹 문서를 전달하거나 적절한 웹 응용 프로그램을 실행시키고 실행결과를 다시 전송하는 웹 서버 소프트웨어(ex Apach, Nginx)를 탑재해야 한다.
  • 웹 클라이언트 : 웹 서버로부터 데이터를 다운받아 사용자에게 보여주거나 사용자 데이터를 웹 서버에 업로드 하는 인터페이스. 웹 클라이언트로 작동하기 위해서는 웹 브라우저가 필요.

 

- 웹 페이지

  • 정의 : 월드 와이드 웹 상에 있는 개개의 문서
  • 웹 페이지 구성 3요소
    1. 웹 페이지 구조, 내용 - html 태그로 작성
    2. 웹 페이지 모양 - css로 작성
    3. 웹 페이지 행동 및 응용 프로그램 - javascript로 작성
  • 정적 웹 페이지 : 저장된 그대로 사용자에게 전달되는 웹 페이지
  • 동적 웹페이지
    • 서버사이드 동적 웹페이지 :  서버사이드 스크립트를 처리하는 애플리케이션 서버에 의해 통제되는 구조의 웹페이지이다. 서버 사이드 스크립트에서 파라미터는 클라이언트 사이드 처리의 구성을 포함하여, 새로운 모든 웹 페이지의 조합이 어떻게 처리되는지를 결정한다.
    • 클라이언트 동적 웹페이지 : 로드될 때 브라우저에서 실행되는 HTML 스크립트를 사용하여 웹 페이지를 처리한다. 자바스크립트와 다른 스크립트 언어들은 수신된 페이지의 HTML이 문서 객체 모델(DOM)로 구문 분석하는 방식을 결정하며 로드되는 웹 페이지를 표출한다. 동일한 클라이언트 사이드 기법들이 동일한 방식으로 DOM을 동적으로 업데이트하거나 변경한다.

 

- URL

  • 웹 서버의 주소와 웹 페이지 파일의 경로명으로 구성된 인터넷 자원 주소
  • 구성요소 : 프로토콜 + 서버주소 + tcp/ip 포트번호 + 경로명 + 파일이름

 

- HTTP

  • 웹 브라우저와 웹 서버가 웹 페이지 등의 자원을 주고받기 위해 사용하는 통신 규약
  • 웹 브라우저가 요청하고 웹 서버가 응답하는 방식으로 작동
  • http 세션 : 하나의 html 파일을 받아오는 과정

 

- 쿠키

  • 정의 : 브라우저가 웹 서버에 처음 접속하면 그 응답으로 웹 서버가 브라우저에게 보내는 4KB 이하의 작은 데이터
  • 용도 : 웹의 stateless 상태에서도 현재 방문한 사용자가 다음에 방문할 때 알아보기 위해 사용된다.
  • 쿠키 데이터는 6개의 쌍으로 구성되어 있다
    name=value; Expires=[Date]; Domain=[Domain]; Path=[Path]; [Secure]; HttpOnly;
  • 웹 사이트의 어떤 웹 페이지가 다른 웹 페이지에게 전달할 정보를 쿠키로 만들어 사용자 로컬 컴퓨터에 저장하면, 다른 웹 페이지는 쿠키를 통해 정보를 전달 받는다
  • 한계점
    • 크기가 4KB로 제한
    • 웹서버에 요청 보낼때마다 쿠키가 함께 전송되서 높은 트래픽 발생
    • 쿠키는 브라우저의 모든 윈도우가 공유하므로 윈도우마다 독립적인 값을 저장할 수 없다 

 

 

- 세션 스토리지

  • 브라우저 윈도우마다 마련된 독립적인 저장소로 윈도우가 사라지면 함께 사라지는 일시적인 저장소
  • 세션 : 브라우저 윈도우와 웹 사이트가 연결된 상황
  • 용도 : 세션 스토리지는 한 세션동안 한 윈도우에 연결된 웹 사이트의 웹 페이지들이 주고 받는 임시 데이터를 로컬 컴퓨터에 일시적으로 저장하기 위해 사용된다.

 

- 로컬 스토리지

  • 모든 브라우저 윈도우들이 공유하며 윈도우나 브라우저가 닫혀도 사라지지 않는 영구적인 저장소
  • 웹 사이트와 연결하지 않고도 오프라인 상태에서 웹 어플리케이션이 로컬 스토리지를 활용할 수 있다




'Web > backend' 카테고리의 다른 글

인증(Authentication) & 인가(Authorization)  (0) 2020.10.24
Django polls 앱  (0) 2020.10.24
HTTP, RESTful API  (0) 2020.10.24
Django 기본 개념  (0) 2020.10.24
Node.js 기본 개념 및 간단한 웹서버 구현  (0) 2020.10.24