REST Representational State Transfer의 약자로 효율적, 안정적이며 확장가능한 분산시스템을 가져올 수 있는 소프트웨어 아키텍처를 나타내며 HTTP 프로토콜을 HTTP 답게 쓸수있게하는 방법이다. 관련 작성 포스팅 HTTP란? / HTTP Method REST 구성요소 리소스 : HTTP URI 리소스에 대한 행위 : HTTP Method 리소스에 대한 행위의 내용 : 클라이언트와 서버가 데이터를 주고 받는 형태로 JSON, XML 등이 있다. REST의 제약조건 Server - Client SW를 서버, 클라이언트 구조로 나눠 서버는 자원을 갖고 있고, 클라이언트는 서버의 자원을 요청하는 구조 Stateless HTTP 프로토콜이 무상태 프로토콜이기에 당연히 따라오는 제약조건 ..
OAuth란? 구글, 카카오 같은 다양한 플랫폼의 자신의 정보에 대해 웹 사이트나 애플리케이션의 접근 권한을 부여할 수 있는 수단으로 우리가 개발하는 서비스가 플랫폼의 정보에 접근하기 위해 접근권한을 플랫폼으로부터 위임을 받는 것이다. 본 포스팅은 Authorization Code 방식의 OAuth만을 다룹니다. OAuth 2.0이 나오게 된 이유 위와 같은 주체들이 있을 때 USER는 GOOGLE이나 KAKAO에 회원가입이 되어있는 상태이고, MY SERVER에서 PLAFORM에 접근하기 위해 PLATFORM INFO를 넘겨주면 MY SERVER에서는 PLATFORM에 USER 리소스에 대한 접근을 USER인 것 처럼 할 수 있다. 하지만 USER의 입장에서 MY SERVER에서 해당 정보를 유실하거나..
HTTP프로토콜은 무상태 프로토콜로 이전과 이후의 통신상태와는 독립적으로 사용된다. 하지만 무상태 프로토콜을 이용하지만 로그인 유지 같은 사용자의 상태를 포함해야하거나 인가가 필요한 상황에서는 세션을 사용하거나 토큰을 HTTP Request Header 내에 넣어 사용한다. 위치 둘 다 인증(로그인)시에 생성되고 중요한 것은 저장이 되는 위치이다. 세션 로그인 성공 시에 해당 유저의 세션을 서버에서 저장하고, 클라이언트에게는 세션id를 넘겨준다. 이후에 로그인이 필요한 서비스에 접근할 때(인가)는 HTTP Request의 헤더에 세션 id를 추가해서 보내고, 서버는 관리중인 세션중에 넘겨받은 세션id와 일치하는 세션이 있다면 세션의 Role을 확인하고 접근을 허가한다. 토큰 로그인 성공 시에 서버는 해당..
HTTP의 URI로 리소스를, HTTP Method로 리소스에 대한 행위를 나타내기에 이해하기 쉬운 장점을 극대화한 REST API와 같은 아키텍쳐를 이해하기 위해서 HTTP Method에 대해 알아본다. HTTP Request Method 서버의 CRUD기능을 구현할 때 CREATE는 POST, READ는 GET, UPDATE는 PUT or PATCH, DELETE는 DELETE를 사용한다. HTTP Request 구조자체는 GET을 제외하고는 동일하다. 서버에서 동일한 구조에서 데이터를 Method에 따라 달리 이용하는 방법을 정의하기 위해 Method가 존재한다고 할 수있다. GET URI로 지정된 리소스에서 데이터를 서버에 요청한다. 쿼리 스트링으로 URI에 원하는 정보를 요청한다.(바디 없음) ..
많이 들어보고 나름 많이 써보기도 한 것 같은 HTTP 자세히 알아보기 위해 공부했고, 내용을 정리한다. HTTP란? HTML문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜이다. 웹에서 이루어지는 모든 데이터 교환의 기초이며, 애플리케이션 계층의 클라이언트 - 서버 프로토콜이기도 하다. HTTP 요청 및 응답의 올바른 형식은 클라이언트와 서버에서 사용하는 HTTP 프로토콜(또는 HTTP 사양)의 버전에 따라 다르기 때문에 요청은 Reqeust Line, 응답은 Status Line에 명시해야한다. 읽기 간단하다 HTTP는 쉽게 읽을 수 있게 고안되었고 프레임별로 캡슐화하여 간결함을 유지한다. 읽기 간편한 HTTP의 장점에 따라 REST 아키텍쳐의 설게로 이어진다. 확장 가능하다 클라이언트와 서버..
클라이언트 - 서버 아키텍쳐 추상적인 수준에서 소프트웨어를 클라이언트 측과 서버 측의 두 부분으로 나누는 소프트웨어 설계 아키텍쳐이다. 클라이언트 : 사용자 컴퓨터에서 사용자와 상호 작용을 처리하는 UI를 제공 서버 : 클라이언트로부터 요청을 수신하고 적절한 데이터를 응답 소프트웨어의 역할을 두 개로 나눴기 때문에 서버는 비즈니스 로직과 데이터들에, 클라이언트는 사용자에게 UI를 제공하는 것에 집중 할 수 있고, 서버는 UI를 신경 안써도 되고, 클라이언트는 복잡한 데이터를 건드릴 필요가 없게 된다. 클라이언트와 서버로 나눴기 때문에 서로 통신을 해야하는데 여기에 필요한 것이 통신 프로토콜이고 Statefull, Stateless로 나뉜다. Statefull Service 클라이언트가 서버에 요청을 보내..
인터넷을 이용하는 사람에게 URL이란 단어는 익숙하다. URI, URL, URN이 무슨 정의와 차이점에 대해 알아보자. URI, URL, URN의 정의 URI Uniform : 리소스를 식별하는 통일된 방식 Resource : 자원, URI로 식별할 수 있는 모든 것 Identifier : 다른 항목과 구분하는데 필요한 정보 An individual scheme does not have to be classified as being just one of "name" or "locator". Instances of URIs from any given scheme may have the characteristics of names or locators or both, often depending on the..