CS

HTTPS, RESTful

2023. 7. 22. 00:32
목차
  1. HTTPS
  2. HTTPS역할
  3. 내가 사이트에 보내는 정보들을 제3자가 확인할 수 없도록함
  4. HTTPS 작동 과정
  5. RESTful API
  6. WWW의 문제점
  7. REST
  8. 제약조건
  9. 요약

HTTPS

  • 기존의 http사이트에 보안성을 추가함 ex) 로그인시 아이디와 비번을 입력하고 네이버 서버로 전송시 http로 요청시 제 3자가 정보를 볼 수 있었음

HTTPS역할

  • https는 입력한 중요한 정보를 서버로 보낼때 보낸 정보를 암호화하여 서버로 전송하는 역할
  • 데이터를 보내는 정보가 안전한 사이트로 전송되는지 확인하는 역할 = 사이트를 검증하는 역할

내가 사이트에 보내는 정보들을 제3자가 확인할 수 없도록함

  • 대칭키 요청을 보내는 쪽과 받는 쪽이 같은 키를 가짐, 데이터 전송시 가지고 있는 키로 데이터 암호화 => 대칭키를 가지고 알고리즘 복호화하여 데이터 해석
  • 대칭키를 제 3자가 확인하면 대칭키의 의미가 없어짐
  • 비대칭키(공개키) A키로 암호화하면 B키로 복호화 , B키로 암호화하면 A키로 복호화
  • 사용자는 네이버의 공개키를 가지고 있음
  • CA에서 인증키를 발급받아 사용 , 브라우저에는 CA에서 발급한 공개키가 내장되어 있음

HTTPS 작동 과정

  • HTTPS는 HTTP요청 및 응답을 SSL 및 TLS에 결합
  • 사용자 브라우저 주소에 https://로 url 설정 후 서버에 요청
  • 브라우저는 서버의 SSL 인증서를 요청하여 사이트의 신뢰성 검증시도 클라이언트 -> 서버
  • 서버는 공개키(비대칭키) 가 포함된 SSL 인증서를 클라이언트로 전송 서버 -> 클라이언트
  • 서버에서 전송된 인증서가 인증되면 브라우저가 공개키를 사용하여 세션키가 포함된 메세지를 암호화 하고 전송
  • 서버는 프라이빗키를 사용하여 메세지를 해독하고 세션 키를 검색 => 세션키를 암호화하고 브라우저에 승인 메세지를 전송
  • 브라우저와 웹서버 모두 동일한 세션 키를 사용하여 메세지를 안전하게 교환하도록 전환
  • 여기까지 과정이 최초 https요청시 발생하는 과정 이후 서버와 주고받는 요청과 응답은 암호화 되어 제3자가 조회할 수 없음 최초 https 연결시에는 세션키공유 => 공개키 사용
  • https 연결 이후에는 대칭키를 사용하여 데이터를 암호화 하고 복호화 하는 과정을 빠르게 수행

RESTful API

  • REST스러운 API?
  • 웹이 최초에 데이터를 주고 받는 형식은 각자가 쓰는 데이터 형식과 프로토콜이 각자다름
  • 서버와 클라이언트 간의 결합도가 높아짐 => 서버의 변경이 클라이언트에 심각한 영향을 미침
  • 기존 www는 서버와 클라이언트간의 결합도가 높음 => 표준 통신형식이 존재하지 않았음
  • 자원을 어떻게 표현할지, 어떻게 관리할지 표준이 부재 ex) /new-user  => a  !==   /new/user  => b
  • 한페이지 안의정보가 많아지고 복잡해져 자원관리가 어려워짐 => 페이지의 한부분만 변경해도 페이지 전체를 변경해야함 (html 파일을 다시 요청함)

WWW의 문제점

  • 클라이언트와 서버 간 결합도가 높다
  • 자원관리가 어렵다.

REST

  • REST는 웹을 위한 제약조건의 집합을 의미

제약조건

  • 클라이언트 - 서버구조 => 서버는 클라이언트로 데이터만 전송하면 끝
  • 무상태성 => 요청은 상태를 가지지않음, 서버는 클라이언트가 이전에 무슨 요청을 보냈는지 모름
  • 캐시가능성 => 서버는 자원이 캐시 가능한지 명시해야 한다는 제약조건 
  • 계층형 시스템 => 계층형 시스템을 적용해야 한다는 제약조건
  • 주문형 코드 => 필요에 의해 기능을 확장할 수 있도록 해야한다는 제약조건 가장 중요하면서도 지키기 어려움 ex) 플러그인
  • *균일한 인터페이스 => 개발을 할 때 클라이언트와 맞닿아 있는 부분을 쉽고 일반적으로 설계하라는 제약조건
  • *자원의 식별 => 
  • *자기서술적 데이터 => html은 명세가 존재함, 해당 메세지를 해석하기 위한 방법이 존재한다는 것

요약

  • www의 등장으로 전세계에서 웹이라는 공간을 통해 데이터를 주고 받을 수 있게됨 => 폭발적인 사용량 증가로 인해 몇가지 문제 발생 =>  문제 해결을 위해 REST 등장
  • REST란 제약조건의 집합으로서 optional한 제약조건을 제외하고 5가지 이상의 제약조건을 모두 만족하면 RESTful하다라고 함
  • 클라이언트 - 서버구조, 무상태성, 캐시 가능성, 계층형 시스템, 주문형 코드 *균일한 인터페이스
  • 균일한 인터페이스 제약조건이 가장 지키기어려움
  • 실제 대부분의 RESTful API를 작성하는 것은 어려움 개발비용 대비 기대효과가 낮고 제약조건이 많아 RESTful을 지키기 어려움

 

'CS' 카테고리의 다른 글

클라우드 컴퓨팅  (0) 2023.07.28
데이터베이스 ORM  (0) 2023.07.24
동기,비동기 프로세스와 스레드  (0) 2023.07.20
자료구조, 알고리즘  (1) 2023.07.18
CPU 스케줄링  (0) 2023.07.17
  1. HTTPS
  2. HTTPS역할
  3. 내가 사이트에 보내는 정보들을 제3자가 확인할 수 없도록함
  4. HTTPS 작동 과정
  5. RESTful API
  6. WWW의 문제점
  7. REST
  8. 제약조건
  9. 요약
'CS' 카테고리의 다른 글
  • 클라우드 컴퓨팅
  • 데이터베이스 ORM
  • 동기,비동기 프로세스와 스레드
  • 자료구조, 알고리즘
index.ys
index.ys
머리속에 떠도는 코드조각들을 맞추는 공간입니다.
index.ys
코린이 개발일지
index.ys
전체
오늘
어제

공지사항

블로그 메뉴

  • 홈
  • 방명록
  • Github
  • Notion
  • Figma
  • 타닥타닥 (235)
    • 개발일지 (124)
    • html , css (0)
    • Javascript (30)
    • Node.js (8)
    • React (2)
    • 네트워크 (1)
    • DB, SQL (5)
    • AWS (11)
    • CS (21)
    • 면접 (13)
    • 사진 (4)
    • 북로그 (3)
    • 머릿속 (5)

인기 글

최근 글

최근 댓글

hELLO · Designed By 정상우.
index.ys
HTTPS, RESTful
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.