2021. 7. 1. 22:15 Web
[web] 알아두면 좋은 개념 정리 - 2
Authentication : 인증
Authorizatoin : 권한
OAuth란?
. 기존 WebService 제공자가 해당 User의 개인정보를 보유하던 방식에서 탈피
. 기존 WebService 제공자 역시 보안상의 이슈를 피할 수 있음
. WebService 제공자가 User가 인증 및 권한 요청 시 타 Service를 통해서 해당 User를 검증하는 방식
. 장점으로는 User, WebService는 보안 이슈를 줄일 수 있고 타사의 REST API를 활용 가능
. 현재 OAuth1.0을 거쳐서 OAuth2.0을 사용가능
OIDC (Open ID Connect)
. 기존의 OAuth가 인증(Authentication)과 권한(Authorization)을 모두 제공
. 보통의 Service의 경우 인증(Authentication) 기능만 필요
. 권한(Authorization)에 대한 불필요한 호출을 줄이는 것이 가능
. 구글의 경우 OAuth Token을 얻을 시 OIDC값도 같이 넘겨준다.(작성자가 활용하던 시점 기준)
JWT(Json Web Token)
. Header, payload, signature 세가지 정보로 구성
. Header에는 사용한 암호화 방식등의 data가 존재
. payload에는 전달하려는 data가 존재
. signature에는 전달하려는 data를 privateKey를 통해 암호화한 서명(signature)이 존재
. 전체 Token의 경우 Header.Payload.Signature 로 '.'을 이용해 합쳐진 문자열이 된다.
Client - Server Model
. 해당 Model의 경우 Client를 설치 및 실행한 후 Server에 요청을 하면 Server가 응답해주는 Model
. 전통적인 방식이지만 문제가 발생 시 Client를 재배포해야하는 문제가 발생
- ex : 배틀그라운드, 모바일 게임 등등
HTTP(HyperTextTransfortProtocol)
. Web Service에서 client가 Server에 요청하는 방식의 통신 Protocol
. HTTP에 SSL Protocol을 사용하여 보안을 강화한 후 data를 주고받는 방식이 HTTPS
HTTP의 Method
. GET
- Server에 Data를 요청하기 위해 특정 URL 경로를 호출하는 방식
- URL에 사용되는 문자는 오직 ASCII Code만 허가
- 동일한 GET 요청에 대해서는 Page Caching이 가능
. POST
- User가 Form등에 입력한 Data를 Server에 전달해줄 때 사용
- 입력한 Data가 requestbody에 포함되며 URL에 노출되지 않음
- Post로 넘겨주는 값은 여러 자료형이 가능하다.
- RESTfull API에서는 특정 Data를 삽입 시 POST를 사용하도록 권장
. HEAD
- GET과 유사한 방식이지만 요청의 Header data 를 제외하고는 보내지 않음
. PUT
- 특정 Data의 전체를 갱신하고자 할 때 사용
. PATCH
- 특정 Data의 일부만 갱신하고자 할 때 사용
. DELETE
- 특정 Data에 대해서 삭제 요청을 할 때 사용
주요 HTTP 응답 Code
. 100 : Continue
. 200 : Request Success
. 201 : PUT Method에 의한 Data 생성 성공
. 202 : Accepted
. 400 : Bad Request
. 401 : Unauthorization
. 403 : Forbidden Request
. 404 : Not Found
. 405 : Method Not Allowed
. 408 : Request timeout
'Web' 카테고리의 다른 글
웹에서 쿠키란 무엇이고 어떻게 활용되는가? (0) | 2023.11.14 |
---|---|
OAuth2에 대해서. (0) | 2023.11.14 |
[web] 알아두면 좋은 개념 정리 - 3 (0) | 2021.07.01 |
[web] 알아두면 좋은 개념 정리 - 1 (0) | 2021.07.01 |
Web Strage란? (0) | 2021.06.25 |