Common/Web

· Common/Web
RESTful API 6가지 제약 조건 REST이란? Representational State Transfer의 약자로 로이필딩에 의해 만들어졌습니다. 웹 서버에서에서 사용하는 것으로 애플리케이션 사이의 결합도를 낮춰 설계하는 아키텍쳐 스타일입니다. 즉, 결합도를 낮춰 서버 / 클라이언트가 별도로 구축되고 결합할 수 있게 하는 것이다. 이러한 결합도를 낮추기 위해 6가지의 제약 조건을 가지고 있으며 제약 조건을 잘 지켜야 RESTful하다고 할 수 있습니다. RESTful API 제약조건 Client-Server 이 조건의 기본 원칙은 관심사의 명확한 분리입니다. 사용자들에게 제공하는 Interface인 User Interface와 데이터 스토리지(ex. DB), 알고리즘 등 서버 내부의 작업을 분리함으..
· Common/Web
CORS에 대해서 알아보자. CORS란? Cross-Origin Resource Sharing 교차 출처 자원 공유 여기서 자원, 공유에 대한 단어의 뜻은 잘 알고 있지만 교차 출처라는 단어가 어색하게 느껴질 수 있습니다. 지금부터 교차라는 단어보다는 다른이라는 단어로 변경해서 이야기를 해보도록 하겠습니다. 즉, 다른 출처 자원 공유라는 것입니다. 간단하게 이야기 하면 다른 출처에 대한 자원의 공유에 대해 어떻게 해야 하는지에 대해 나타내는 것이라는 것이라고 할 수 있습니다. 출처(Origin)란? 아래와 같은 URL이 있다고 해봅시다. https://github.com/woowacourse/jwp-was/issues?q=럿고&sort=oldest#foo URL은 내부적으로 구성요소가 또 존재합니다. 이..
· Common/Web
인증(Authentication) vs 인가(Authorization) 인증(Authentication)이란? 사용자의 신원을 증명하는 것 예를들어 로그인하는 과정을 인증이라고 한다. 로그인을 하게 되면 JWT나 Session을 이용해 인증을 유지한다. 인증 방식 전통적인 방법으로는 사용자명(Principle), 비밀번호(Credential)로 인증하는 Credential 기반 인증 방식 OTP와 같이 추가적인 인증방식을 도입해 한번에 2가지 방법으로 인증하는 이중 인증 방식 토큰 인증 소셜 미디어를 사용하는 OAuth2 인증방식(토큰인증 방식 사용) OAuth 인증 종류 인가(Authorization)란? 특정 리소스에 접근할 수 있는 권한을 부여하는 것 예를들어 사용자 등급(일반, VIP, 관리자)에..
· Common/Web
HTTP Status HTTP Status란? 클라이언트와 서버가 요청과 응답을 주고 받을 때 서버의 응답을 알려주는데 사용합니다. 결과 내용을 body에 상세하게 적어줄수도 있지만, 시간 비용이 많이 들며 또한 클라이언트 개발자와 서버 개발자 간의 메시지 포멧이 다양하기 때문에 소통에 문제가 생길 수 있습니다. 이러한 문제점을 해결하기 위해 숫자로 결과가 어떤지에 대해 표준약속을 정해놓았으며 이를 HTTP Status(상태코드)라고 합니다. Informational 1xx 정보를 응답하는 것이며, 요청을 받고 프로세스를 계속 진행합니다. 100 Continue 임시적인 응답으로 지금까지의 요청이 문제가 없고 클라이언트에게 계속해서 요청을 하거나 이미 요청이 완료된 경우에는 무시해도 됨을 의미합니다. 클..
· Common/Web
HTTP Method HTTP 메소드란? The Method token indicates the method to be performed on the resource identified by the Request-URI. The method is case-sensitive. 클라이언트가 웹서버에서 사용자 요청의 목적 및 종류를 알리는 수단이다. 즉, 자원의 행위를 표현하는 것이다. 요청 메시지의 첫째줄에 위치한다. Request-Line = Method SP Request-URI SP HTTP-Version CRLF GET 서버에게 해당 리소스를 조회할 때 사용 즉, 서버의 Resource를 읽는다고 생각하면 될거 같습니다 GET /users/1 HTTP/1.1 200 OK { "name": "rutgo..
· Common/Web
HTTPS란? HTTP란? HyperText Transfer Protocal 웹 환경에서 브라우저와 웹 서버가 통신하는 방법 동작 방법 URL 주소를 입력 DNS 서버에 웹 서버의 호스트 이름을 IP 주소로 변경을 요청한다. 웹 서버와 TCP 연결 시도 서버에게 메서드 명령을 전송한다. 서버가 응답을 보낸다. 서버와 클라이언트간의 연결을 해제하다. 웹 브라우저가 응답을 출력한다. HTTPS란? Hypertext Trnasfer Protocol Secure HTTP의 치명적인 단점인 보안을 보완하기 위해 나왔다. HTTP의 보안적인 문제는 통신할때 데이터가 암호화가 되지 않고 생 날것 그대로 전송되어 집니다. 해커가 중간에 데이터를 도청하게 된다면 중요정보(로그인 정보 등)을 탈취할 수 있다는 의미입니다...
· Common/Web
OAuth2 인증방식 OAuth2 인증 방식 종류 Authorization Code Grant Type Implicit Grant Type Resource Owner Password Credentials Grant Type Client Credentials Grant Type Authorization Code Grant Type 권한 부여 코드 승인 타입 클라이언트가 다른 사용자 대신 특정 리소스에 접근을 요청할때 사용한다. 리소스 접근을 위한 사용자명, 비밀번호, 권한 서버에 요청해서 받은 권한 코드를 함께 활용해서 리소스에 대한 엑스스 토큰을 받아 이를 인증에 사용하게 됩니다. 대부분의 소셜 미디어들이 웹 서버 형태의 클라이언트를 지원하는데 사용하는 방식입니다. 웹 서버에서 장기 액세스 토큰(long..
· Common/Web
Cookie vs Session HTTP의 특징 Connectionless(비연결지향) Client에서 Server에 Request를 보내면 Server는 Client에 Response를 하고, 접속을 끊음 Stateless(무상태) 비연결지향(Connectionless)로 인해 Client의 상태정보에 대해 알 수 없음 쿠키(Cookie) Client Local에 저장되는 Key-Value쌍의 작은 데이터 파일 구성 요소 이름, 값, 만료시간, 전송할 도메인명, 전송할 경로, 보안연결여부, HttpOnly여부 HttpOnly : 서버로 http Request 요성시에만 cookie를 전송, 스크립트 언어로 브라우저의 cookie를 호출했을때 브라우저가 응답하지 않음 동작방식 Clinet가 Server에..
· Common/Web
Cookie 클라이언트에 대한 정보를 이용자 PC의 하드디스크에 보관하기 위해서 웹 사이트에서 클라이언트의 웹 브라우저에 전송하는 정보 로그인 기능 구현 시 대부분 토큰을 사용 이 토큰은 로그인 시 고유하게 가지고 있는 unique한 값을 가지게 됨 웹에서 로그인을 위해 항상 토큰을 발급받는 API를 사용해야 함 근데, 서비스를 이용하다 보면 토큰을 반드시 매개변수로 보내야 하는 경우가 있다. 이런 경우 토큰을 매번 생성한다면 api하나 호출하기 위해 토큰을 얻는 api를 또 호출하는 쓸데 없는 일이 반복 따라서 쿠키라는 곳에 저장해 놓고 Header에 Cookie에 담아서 토큰을 서버에 보내게 된다. WebStorage HTML5에서 쿠키의 단점을 보완해서 만든 기술 기본적으로 key-value로 되어..
Seyun(Marco)
'Common/Web' 카테고리의 글 목록