CH5 : 웹

김마사키·2022년 4월 14일
0

사이버보안개론

목록 보기
4/6

Web

Web이란?

Web

  • 하이퍼텍스트(HyperText) 문서들이 인터넷(Internet)을 통해서 연결된 시스템

Web의 시작

  • WWW = W3 = World Wide Web
  • 1989년 CERN 유럽 입자 물리 연구소

Web 구성

  • 통신 프로토콜 : HTTP (HyperText Transfer Protocol)

  • 주소 체계 : URL

  • Contents: Hypertext 문서
    link(hyperlink)를 통해 다른 문서로 접근할 수 있는 문서
    eg. HTML (HyperText Markup Language)

Q. URL vs. URI

URL = Uniform Resource Locator
URI = Uniform Resource Identifier : 특정 자원 resource에 접근하기 위해 사용

  • URL은 URI의 하위 집합/ URI는 URL의 상위집합

web browser

  • Web에 접근하기 위한 응용 소프트웨어
    chrome, Internet explorer, safari, firefox
  • 최초의 browser = Mosaic

HTTP

HTTP 통신 프로토콜

  • 응용계층 application layer (L5)
  • 다양한 objects 지원 = text, graphic, animation, sound
  • web server = HTTP server
  • 버전
    HTTP/1.0 -> HTTP/1.1 -> HTTP/2
  • HTTP/1.1 상용화
  • 통신단계

    (0) Client - Connect
    (1) Client - Request
    (2) Server - Response
    (3) Client - Close

HTTP request 메시지

request line = Method + request URI + Protocol version

  • 구성요소
  1. Method 메소드 - server가 수행하야 할 동작 정의 (GET, POST, ..)
  2. request URI - 상대경로 및 절대 경로
  3. 프로토콜 버전 (HTTP/1.1 일반적으로 가장 많이 사용)
  4. request header - 필요한 조건이나 특성 등을 나타내는 field
  5. request body - client -> server 보내는 추가적 데이터 (POST), 다양한 포맷 가능
    (이름, 주소, Binary File ..)
GETPOST
용도data 요청data 제출
parameter 정보전송 O전송 X
request body사용 X사용 O
보안취약우수

HTTP response 메시지

  • server가 보내는 ( client HTTP request에 대한 ) response message
  • client는 HTTP response를 받고, server 연결을 끊음

status line = protocol version + status code + status code 설명

  • 구성요소
  1. protocol version
  2. status code
  3. status code 설명
  4. response header - 전달할 데이터 형식과 길이 등의 메타 정보
  5. response body - client의 request에 대한 결과
  • HTTP response status code

100 요청을 받아 처리가 계속되고 있음

200~299 성공 success

  • 200 : OK
  • 201 : Created
  • 202 : Accepted

400~499 클라이언트 오류 client error

  • 400: Bad request
  • 401 : Unauthorized
  • 403 : Forbidden
  • 404 : Not Found

500~599 서버 오류 server error

  • 500 : Internal server error

HTTP 특징

  1. connectionless
  2. stateless

1. connetionless

client => connect, client -> server , server -> client , client => close

  • 성능상 비효율적 = 새로운 request 마다 접속을 새로 해야 함
  • 프로토콜 상의 개선
  1. HTTP/1.1 request header : Keep-alive =>얼마 동안 접속을 열어 둘 것인가?
  2. HTTP/2 multiplexing + 성능 개선

2. stateless 상태정보 유지 안 함

: response 보낸 후, 양쪽 다 서로의 정보를 남기지 X

BUT!! 상태정보를 저장해야 할 필요가 있다!!

쿠키와 세션

  • 쿠키 (Cookie) : client에 저장되는 (key, value) 데이터 파일
  • client의 상태 정보로컬에 저장 후 참조
  • 동일한 server에 재요청시 browser에서 저장된 데이터를 함께 전송
  • cookie = 이름, key, value, 만료 날짜(expired)가 설정
  • 세션 (Session) : server는 일정 시간동안 같은 client로부터 전달되는 request들을 하나의 세션으로 식별
  1. client sends first request
  2. server makes session id for client and sends it
  3. client saves session id using cookie
  4. client sends other request with session id
  5. server identifies request with session id

HTML

HTML 특징

  • web language, script language

Web Server는 HTML 문서 저장
Client 요청
Server HTML page 전송
Client HTML (Web) page 해석 후 Web browser 표현 = Static web page
static web page- 보안성 우수

HTML 문서 생성

Static web page(static content)

  • 내용 변경 X, web server가 파일을 읽어 그 내용을 전송

Dynamic web page(dynamic content)

  • 사용자의 상황이나 request 에 따라 내용이 달라짐 (SSS) (CSS)

SSS vs. CSS

SSS

  • 동적 web page 제공할 수 있는 언어
  • server에 종류별로 사용하는 언어와 db가 다름
    eg. ASP, JSP, PHP
  • 동적 web page => ASP, JSP web 문서 요청
  • Web server가 SSS로 작성된 page를 내부적으로 실행 후 -> HTML file로 만들어 client에게 전송

CSS

  • client 측 web browser에서 실행되는 script ( JS, VBS )
  • web server의 부담 down, 다양한 기능 수행 가능
  • 동적 화면, 다양한 UI
  • HTML 문서에 포함 or 별도 생성

0개의 댓글