[네트워크]표준 클라이언트 서버 응용

been·2021년 2월 5일
0

개인공부

목록 보기
3/11

목표 : 응용 프로그램이 어떤 일을 수행하는지 알기

##월드 와이드 웹과 HTTP 목차

#월드 와이드 웹(Wrold Wide Web)

  • 구조
  • 자원 위지 지정자(URL)
  • 웹문서

#하이퍼텍스트 전송 프로토콜(HTTP)

  • 영속적 연결 대 비영속적 연결
  • 메시지 형식들
  • 조건부 요청
  • 쿠키

#웹 캐싱: 프록시 서버

  • 프록시 서버 위치
  • 캐시 갱신

#HTTP 보안

  • 자체적으론 보안 제공 안함
  • HTTPS : SSL을 사용시 기밀성, 인증, 데이터 무결성 제공

##월드 와이드 웹

#구조

  • 분산 클라이언트-서버 서비스
  • 브라우저를 사용하는 클라이언트가 서버로부터 서비스를 제공받음
  • 제공되는 서비스는 사이트에 분산
  • 웹 페이지- 각 사이트에 저장
  • 웹 페이지는 동일한 사이트 또는 다른 사이트에 있는 웹 페이지들의 링크 포함
  • 각 웹페이지는 이름과 주소를 갖는 파일

**웹 클라이언트(브라우저)

  • 웹 문서를 해석하여 표현

**웹 서버

  • 웹 페이지 저장
  • 클라이언트 요청이 오면 해당 문서를 클라이언트에 전송
  • 효율성 위해 요청 파일 캐시에 저장

#자원 위치 지정자(URL)

  • 웹 페이지를 구별하기 위한 식별자 필요
  • 프로토콜 : 웹페이지를 접속하기 위한 클라이언트 서버 응용 프로그램
  • 호스트 : 서버 이름 또는 서버에게 주어진 IP주소
  • 포트 : 16비트 정수
  • 경로 : 파일의 위치와 이름 식별

#웹문서

  1. 정적문서
    • 서버에 생성되어 저장된 고정 내용 문서
    • 사용언어 : HTML, XML, XSL, SHTML
  2. 동적문서
    • 브라우저가 문서를 요청할 때 마다 서버에 의해 생성
    • 스크립트를 이용하여 동적 문서 생성 기술 : JSP, ASP, ..
  3. 액티브 문서
    • 클라이언트 사이트에서 수행될 프로그램 또는 스크립트를 필요로 하는 문서
    • 브라우저가 액티브 문서를 요청하면 서버는 문서의 복사본이나 스크립트를 클라이언트에게 전송 되어 클라이언트에서 실행
    • 액티브 문서 생성에 사용되는 언어 : 자바 스크립트, 자바 애플릿

##하이퍼텍스트 전송 프로토콜 (HTTP)

  • 클라이언트-서버 프로그램이 웹으로부터 웹 페이지를 검색하기 위해 작성하는 방법을 규정하는데 사용하는 프로토콜
  • HTTP 클라이언트가 요청하면 HTTP서버가 응답
  • 연결지향적(연결설정, 서비스제공, 연결종료), 신뢰성(오류 제어 기능)있는 프로토콜
  • 연결방법 : 비영속 대 영속

#영속적 연결 대 비영속적 연결

  • 비영속적 연결
    • 각 요청/응답에 대해 하나의 연결이 만들어짐
      1. 클라이언트가 TCP 연결을 열고 요청을 보낸다
      2. 서버응답을 보내고 연결을 닫는다
      3. 클라이어트는 end-of-file 표시가 나타날 때까지 데이터를 읽고, 연결을 닫는다.
  • 영속적 연결
    • HTTP 버전 1.1에서 기본
    • 서버는 응답을 한 후 추후 연결 요청을 위해 열어놓은 상태유지
    • 클라이언트 요청이나 타임아웃이 되면 연결을 닫는다

#메시지 형식들

  • 메시지 형식 사진

  • 메시지 예시

  • 요청 메시지

    • 요청라인(첫줄) : 메소드, URL, 버전으로 구성
      • 메소드 : 요청 유형을 나타냄
        • 메소드 표
      • 버전 : HTTP 1.1
    • 요청 헤더라인 : 클라이언트로부터 서버로 추가 정보 전송에 사용
      • 요청헤더 이름들
  • 응답 메시지

    • 구성 : 상태라인, 헤더라인, 공백라인, 몸체
    • 상태라인: 버전, 상태코드, 상태문구로 구성
      • 버전 : HTTP 1.1
      • 상태코드 : 요청 상태 정의
      • 상태문구 : 문자 형태로 상태 코드 설명
    • 헤더라인 : 서버에서 클라이언트로 추가정보 전송

#조건부 요청

  • 클라언트는 자신의 요청에 조건추가 가능
  • 서버는 조건이 충족되면 웹 페이지 전송, 그렇지 않으면 클라이언트에게 이를 통보

#쿠키

  • 쿠키 생성과 저장
    1. 서버가 클라이언트로부터 요청을 받았을 때, 클라이언트에 관한 정보(도메인이름, 이름 등)를 파일이나 문자열로 저장
    2. 서버는 클라이언트에게 보내는 응답에 쿠키포함
    3. 클라이언트가 응답을 받으면, 브라우저는 쿠키를 도메인이름에 따라 정렬되는 쿠키 디렉토리에 저장
  • 쿠키사용
    • 클라이언트가 서버에게 요청을 보낼 때 > 브라우저는 쿠키를 검색 > 서버가 보낸 쿠키를 찾음 > 있으면 요청에 포함
    • 서버가 만들고, 서버가 사용
      • ex) 전자상점 : 쇼핑 고객이 상품을 카트에 담으면, 관련정보를 저장한 쿠키를 브라우저로 보냄

##웹 캐싱 : 프록시 서버

  • 프록시 서버는 최신 요청에 대한 응답의 복사본을 가지고 있는 컴퓨터
  • 서버부하 경감, 트래픽 감소, 지연 개선 효과
  • 서버와 클라이언트 역할 동시 수행

#프록시 서버 위치

  1. 클라이언트 컴퓨터를 프록시 서버로 사용
  2. 회사내에서 LAN에 설치되어 전송 부하를 줄임
  3. ISP가 송수신 부하를 줄이기 위해 사용

**프록시서버 과정 :

  1. 프록시 서버는 로컬 네트워크설치된다.
  2. 클라이언트(브라우저)에 의해HTTP요청이 생성
  3. 요청을 프록시서버가 먼저 감지
  4. 프록시서버가 해당 웹페이지를 이미 가졌다면 클라이언트에게 응답보냄
  5. 프록시 서버 없으면, 프록시 서버는 클라이언트와 같이 수행하며 인터넷에 웹서버로 요청을 보냄
  6. 요청이 되돌아 올 떄 프록시 서버는 복사본을 만듬, 이를 요청한 클라이언트에게 보내기 전에 캐시에 저장

#캐시 갱신

  • 프록시 서버는 정보를 언제까지 두느냐가 중요한 문제

##HTTP 보안

  • 자체적으론 보안 제공 안함
  • HTTPS : SSL을 사용시 기밀성, 인증, 데이터 무결성 제공

0개의 댓글