인증과 인가
인증(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 |