[HTTP] 서버와 통신하기

ds-k.fe·2021년 6월 13일
0

HTTP

목록 보기
1/2

20200317 기록

Clent Server Architecture(2 Tier Architecture)

  • 리소스가 존재하는 곳과, 리소스를 사용하는 앱을 분리시킨 것을 2티어 아키텍처(클라이언트-서버 아키텍처)라고 부른다.
  • 클라이언트 - 리스소를 사용하는 앱 ( 리소스를 가지고 있는 서버에게 요청)
  • 서버 - 리소스가 존재하는 곳, (리소스를 요청한 클라이언트에게 리소스를 담아 응답)

3 Tier Architecture

  • 서버 - 리소스를 전달해주는 역할
  • 데이터베이스 - 리소스를 저장하는 공간
  • 클라이언트 - 리소스를 사용하는 곳

HTTP

  • 프로토콜 - 통신 규약, 주문을 하기 위해서 꼭 지켜야 하는 약속
  • 웹 애플리케이션 아키텍쳐에서는 클라이언트와 서버가 HTTP라는 프로토콜을 이용해서 대화를 나눔
  • HTTP 메시지 - HTTP를 이용해 주고받는 메시지

API

  • 서버가 어떻게 구성되어 있는지 알 방법이 없다.
  • API(Application Programming Interface) - 서버는 클라이언트가 리소스를 잘 활용할 수 있도록 인터페이스를 제공해야 한다.

Browser

  • HTML,CSS,JS 등으로 작성된 코드를 내부 엔진으로 해독하여 사용자가 쉽게 이해할 수 있는 형태의 컨텐츠로 보여주는 역할

Browser Security

  • 브라우저는 보안상 위험을 받는다.
    → 자바스크립트를 구동하기 때문하다.
    → 자바스크립트로 할 수 있는 것이 많아서
  • 브라우저에서 자바스크립트로 할 수 있는 것들
  1. ajax call을 해서 api를 호출 할 수 있다.
  2. 다이나믹하게 DOM을 제어할 수 있다.
  3. 인증 정보를 브라우저에 저장할 수 있다.
  4. 인증 정보를 불러올 수도 있다.

Attack

  • XSS 공격
    → 클라이언트가 서버를 신뢰하기 때문에 발생하는 이슈

    → input창에 악성코드를 주입하는 행위

서버에 메시지 요청 → 메세지 응답 → 응답 받은 메세지 돔 반영

  • XSS 방어하기

    → 태그를 태그가 아닌 것으로 인지하게 만드는 것

GET, POST의 차이

  • get - querystring으로 데이터를 보내는 방식(URL)
  • post - body를 통해서 데이터를 보내는 방식

→ POST방식이 더 안전하다. url은 눈에 보이기 때문에 Post를 통해 보내는 것이 안전하다.

CORS가 필요한 이유

  • 다른 서버에서 데이터를 불러와서 웹사이트를 만드는 것을 금지하고 있다.
  • 그런데 웹 서버가 발전하면서 여러 서버에서 가져오고 싶어졌다.
  • 예외 조항 → CORS
  • 다 가져와버릴수 있다. 지원만 한다면

CORS의 작동 원리

  • A서버에서 불러오고
  • B서버에서 이미지를 불러오고 싶어졌다.
  • CORS 지원하니? 하고 물어보고, 지원한다고 하면 받아온다.

0개의 댓글