1. JWT(Json Web Token)
JWT에 대해 말하기 전에 먼저, 로그인기능과 HTTP에 대해 알아보자.
(1) HTTP
HTTP(Hyper Text Transfer Protocol)란 서버와 클라이언트 간의 프로토콜(통신방법)이다.
로그인기능을 이용하기 위해서는 서버와 클라이언트가 데이터를 주고받는 통신 방법이
필요한데 이것을 바로 HTTP라고 한다.
그래서 이게 왜?
앞서 HTTP에대해 언급한 이유는 바로 HTTP의 특성때문이다.
로그인에 걸림돌이되는 HTTP의 두 가지 특징이 있는데 이는 바로
특징1 HTTP는 연결을 유지하지 않는다
특징2 HTTP는 상태를 유지하지 않는다
연결을 유지하지 않기때문에 서버와 클라이언트가 한 번 통신한 후 연결이 끊어진다.
또한 상태를 유지하지 않기 때문에 서버, 클라이언트는 다음 통신 때 이전 통신에 대한
정보를 가지고 있지않다.
따라서, 서버에 요청을 보낼 때 마다 매 번 자신이 누구인지 인증을 해주어야만 한다.
ex) 네이버 메일 확인할 때 로그인, 스팸 삭제할 때 로그인, 메일 보낼 때 또 로그인!
이런 번거로운 작업을 하지 않을 수 있게 해주는 것이 바로 JWT(Json Web Token)이다.
JWT는 또한 아래 사진처럼 Header, Payload, Verify signature 3가지를 점(.)을 기준으로 나누어 인코딩하는데, 이 때 Verify signature에는 따로 정하는 Secret key값도 담겨 있기에 이를 악용하여 수정하려 해도 이 Secret key값까지 알지 않는 한 토큰정보를 변경 할 수는 없다.
2. API(Application Programming Interface)
(1) API
"API(Application Programming Interface, 응용 프로그램 프로그래밍 인터페이스)
응용 프로그램에서 사용할 수 있도록, 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다"-위키백과
쉽게말해 음식점의 점원+메뉴판 같은 개념이다. 메뉴판을 보고 고객(클라이언트)가 주문을 보내면 점원(API)이 주방(서버)에 요청하여 해당 메뉴를 가져오는 것.
출처 : https://velog.io/@getupngo/WIL%ED%95%AD%ED%95%B499-1%EC%A3%BC%EC%B0%A8-JWT%EC%99%80-API
'웹 기술 쌈싸먹기 > 용어정리' 카테고리의 다른 글
HTTP 구조 및 핵심 요소 (0) | 2022.01.24 |
---|---|
JVM, JDK, JRE? (0) | 2022.01.23 |
객체지향 프로그래밍(Object Oriented Programing)? (0) | 2022.01.23 |
[웹 기술 / REST API] RESTful API 설계 가이드, REST API개념과 적용 + 코드 예제 (SpringBoot 기반) (0) | 2022.01.21 |
문자를 사용한 수 표현, 색을 표현하는 방법 (0) | 2022.01.20 |