본문 바로가기
기타

API 기초

by mizuiro 2024. 8. 4.

인증과 인가

인증(Authentication)

사용자가 누구인지 확인하는 단계

로그인이 대표적

⇒ 데이터베이스에 등록된 아이디와 패스워드를 사용자가 입력한 아이디와 비밀번호와 비교해서 일치 여부를 확인하는 과정

인가(Authorization)

인증을 통해 검증된 사용자가 애플리케이션 내부의 리소스에 접근할 때 사용자가 해당 리소스에 접근할 권리가 있는지 확인하는 과정

⇒ 로그인 한 사용자들 중 특정 사용자(관리자, 매니저) 가 공지 게시판에 접근하여 글을 쓰려고 할때 접근 등급을 확인해 접근을 허가하거나 거부 함

통신 방법

API

Application Programming Interface의 서로 다른 두 프로그램이 상호작용하여 통신하기 위한 매커니즘 즉, 어떤 소프트웨어의 기능을 다른 소프트웨어에서 사용할 수 있도록 제공하는 방법

REST API

Representational State Transfer 웹 서비스 간의 통신을 위한 하나의 스티일 REST는 HTTP 프로토콜을 기반으로 하고 HTTP 메소드(GET, POST, PUT, DELETE 등)를 사용 클라이언트와 서버는 HTTP를 사용하여 데이터 교환

REST API 파라미터의 종류

  • HTTP header : 인증과 권한 부여의 목적으로 사용(Authentication, action 허용)
  • Query 파라미터 : URL에 포함되며, ?key=value 형태로 전달, 주로 필터링, 정렬 등에 사용
  • Path 파라미터 : URL 경로 자체에 변수를 넣어 전달하는 방식
  • Body 파라미터 : POST 또는 PUT 메소드에서 사용되며, JSON 또는 XML 형태로 데이터를 전달

HTTP 통신

HTTP(HyperText Transfer Protocol)는 클라이언트와 서버 간의 데이터 전송을 위한 프로토콜

HTTP 통신은 주로 클라이언트가 요청(Request)을 보내고, 서버가 그 요청에 대한 응답(Response)을 주는 방식

요청과 응답은 각각 HTTP 메소드(GET, POST, PUT, DELETE 등)와 상태 코드(200 OK, 404 Not Found 등)를 사용하여 처리

요청 방법

GET

  • 목적: 서버에서 데이터를 조회
  • 특징:
    • 서버의 상태를 변경하지 않음 (안전성)
    • 요청 시 데이터가 URL에 포함됨
    • 주로 데이터 검색 및 조회에 사용

POST

  • 목적: 서버에 데이터를 제출하여 리소스를 생성하거나 업데이트
  • 특징:
    • 서버의 상태를 변경함
    • 요청 시 데이터가 본문에 포함됨
    • 주로 데이터 제출 및 폼 전송에 사용

PUT

  • 목적: 서버에 리소스를 생성하거나 업데이트
  • 특징:
    • 서버의 상태를 변경함
    • 요청 시 데이터가 본문에 포함됨
    • 기존 리소스를 완전히 대체하거나 새로운 리소스를 생성
    • 멱등성 (여러 번 호출해도 결과가 동일)

DELETE

  • 목적: 서버에서 리소스를 삭제
  • 특징:
    • 서버의 상태를 변경함
    • 리소스가 삭제됨
    • 멱등성 (여러 번 호출해도 결과가 동일)

HTTP 프로토콜의 특징

  • Connectionless(비연결지향) :
  • HTTP는 먼저 클라이언트가 요청을 서버에 보내면, 서버는 클라이언트에게 요청에 맞는 응답을 보내고 접속을 끊는 특성이 있다.
  • Stateless(상태 정보 유지 X) :비연결 지향의 특성 때문에 계속해서 통신 연결을 유지하지 않아 리소스 낭비가 줄어드는 장점
  • 특히 불특정 다수를 대상으로 동시에 통신할 때마다 새로 커넥션을 열기 때문에 클라이언트는 인증을 계속해야 하는 단점이 생긴다.
  • 연결을 끊는 순간 통신이 끝나며 상태 정보는 유지하지 않는 특징

'기타' 카테고리의 다른 글

JWT 발급 규칙  (0) 2024.08.21
COOKIE SESSION TOKEN  (0) 2024.08.14