분류 전체보기

Spring/security

JWT 토큰

JWT 토큰 전 게시글에서 여러 가지 로그인 방식 설명에 있어 주로 사용되는 3가지 방법이 있다고 말했다 세션 - 쿠키 토큰 (jwt 토큰) 방식 다른 채널을 통해 인증 (OAuth) 이번 본문에서는 2번을 토큰 방식에 대해 알아볼 것이다. (본문 길이상 간단하게 설명합니다.) JWT(JSON WEB TOKEN)은 무엇일까? 먼저 JWT 가 뭔지부터 알고 넘어가자 JWT 토큰은 간단하게 사용자의 정보를 JSON 객체로 안전하게 전 송하기 위한 방법이다. JWT의 구조 JWT 구조(이미지 출처) Header 토큰의 유형 , 사용 중인 서명 알고리즘 두 부분으로 구성된다. { "alg": "HS256", // 서명 알고리즘 "typ": "JWT" // 토큰 유형 } Payload 등록된 클레임 서비스에 필요..

HTTP/모든 개발자를 위한 HTTP 웹 기본 지식

HTTP 헤더 - 일반헤더

모든 개발자를 위한 HTTP 웹 기본 지식 을 듣고 정리한 내용이며 모든 그림 예제는 해당 강의에서 가져온 내용입니다. 용도 HTTP 전송에 필요한 모든 부가정보들을 담는 곳 표현 헤더는 표현 데이터를 해석할 수 있는 정보를 제공한다(데이터 유형,데이터길이, 압축 정보 등등) 표현(전송, 응답 둘다 사용) Content-Type: 표현 데이터의 형식 미디어 타입, 문자 인코딩 (text/html; charset=utf-8) Content-Encoding: 표현 데이터의 압축 방식 표현 데이터를 압축하기 위해 사용 (gzip,identity) Content-Language: 표현 데이터의 자연 언어 표현 데이터의 자연 언어를 표현(ko,en,en-US) Content-Length: 표현 데이터의 길이 바이..

Spring/security

Spring security 동작 원리 (인증,인가)

인증(Authentication) 인증이란 식별 가능한 정보 (이름 , 이메일)를 이용하여 서비스에 등록 유저의 신원 입증하는 과정이다. 즉 나의 서비스에 등록된 사용자에게만 서비스를 제공한다는 뜻으로 간단히 이해하자. 인가(Authorization) 인증만 가지고는 서비스를 운영하기에는 무리가 있다. 인증을 한 사용자에게 모든 서비스를 제공하게 된다면? 내가 작성한 글이 다른 사람에 의해서 수정되거나 삭제될 수 있다. 따라서 인증된 사용자가 접근하려는 자원에 대한 권한이 있는지 확인하는 절차가 필요할 것이다. 또한 인가는 항상 앞에 인증이라는 선행 프로세스가 필요하다.(인증하지 않은 유저의 권한을 알 수 없기 때문에) 그렇다면 우리는 인증(로그인)을 하기 위해 어떠한 방식들을 사용할까? 세션 - 쿠키 ..

HTTP/모든 개발자를 위한 HTTP 웹 기본 지식

HTTP 상태코드

클라이언트가 서버에게 요청을 보내면 서버는 요청을 처리하고 처리상태를 클라이언트에게 제공해준다. HTTP 응답 상태 코드는 다음과 같다. 1xx(조건부 응답) - 요청을 받았으며 요청을 처리중 (거의 사용되지 않는다.) 2xx(성공) - 클라이언트가 요청한 동작을 수신하여 성공적으로 처리했음 3xx(리다이렉션 완료) - 요청을 완료하려면 추가행동이 필요함 4xx(요청 오류) - 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수없음 5xx(서버오류) - 서버오류, 서버가 정상요청을 처리하지 못함 만약 구체적인 상태코드타입(405)을 알지 못한다면 해당하는 상위 상태코드(4xx)로 해석하여 처리하면된다. 2xx - (성공) 200 OK - 클라이언트가 요청한 행동을 처리 후 응답하는 상태코드 20..

HTTP/모든 개발자를 위한 HTTP 웹 기본 지식

HTTP 메소드 활용

/members/1 (삭제) /members (리스트 조회) /members/1 (삭제) /members/1 (조회) 앞서 URI 에는 자원만을 표현 행위는 HTTP 메서드로 구분한다고 하였다. 이번에는 이론적인 내용이아닌 Spring을 이용하여 예제 코드를 만들어보자. (본문 길이상 Controller 를 제외한 나머지 코드는 생략하겠습니다. 나머지 코드 보기) 회원 저장(/members) 새로운 리소스나 프로세스를 진행할 때에는 POST Method를 사용한다고 하였다. 그렇다면 POST /member 형식으로 컨트롤러를 만들면 된다. @RestController @RequestMapping("/members") @RequiredArgsConstructor public class SimpleContr..

HTTP/모든 개발자를 위한 HTTP 웹 기본 지식

HTTP 메서드

HTTP API를 만들어보자 웹 개발자라면 한 번쯤은 RESTful API이라는 문구를 보았을 것이다. REST API의 이해가 왜 중요한가? 또는 왜 필요할까?라는 생각이 든다. (REST 규칙은 HTTP의 장점을 최대한 활용할 수 있는 아키텍처입니다.) 현 개발의 가장 중요한 부분은 소통과 협업이다. 우리는 개발을 진행함에 있어 절대로 혼자 코딩하고 혼자 배포하지 않는다. 따라서 나만의 규칙보다는 관례와 규칙이 있다면 따라야 한다. 왜냐하면 나만의 규칙과 습관은 본인은 쉽게 알아볼 수 있겠지만 상대방은 전혀 아니다. 이 부분을 다시 한번 상기하고 HTTP API를 만들어보자. REST 구성은 다음과 같다. 자원(RESOURCE) 행위(Verb) 표현(Representations) 그렇다면 한번 만들어..

HTTP/모든 개발자를 위한 HTTP 웹 기본 지식

HTTP 기본

모든 개발자를 위한 HTTP 웹 기본 지식 을 듣고 정리한 내용이며 모든 그림 예제는 해당 강의에서 가져온 내용입니다. 항목 모든 것이 HTTP 클라이언트 서버 구조 Stateful, Stateless 비 연결성(connectionless) HTTP 메서드 모든 것이 HTTP HTTP의 초창기는 Text, HTML 등 을 전송하기위한 프로토콜로 나타났다. 하지만 현재의 HTTP 는 모든 데이터(동영상, 이미지, 등등)를 주고 받을 수 있는 프로토콜로 거듭났다. HTTP의 역사 HTTP/0.9 1991년 : GET 메서드만 지원 , HTTP 헤더 X HTTP/1.0 1996년 : 메서드, 헤더 추가 HTTP/1.1 1997년 : 가장 많이 사용 하는 버전 HTTP/2 2015년 : 성능 개선 HTTP/3 ..

HTTP/모든 개발자를 위한 HTTP 웹 기본 지식

URI와 웹 브라우저 요청 흐름

모든 개발자를 위한 HTTP 웹 기본 지식 을 듣고 정리한 내용이며 모든 그림 예제는 해당 강의에서 가져온 내용입니다. 항목 URI IP(인터넷 프로토콜) URI(Uniform Resource Identifier) URI는 간단히 말한다면 리소스를 보여 줄 수 있도록 해주는 식별자이다. 하지만 필자는 학교에서 URI 를 배울때 항상 URL , URN 은 항상 같이 무엇인지 배웠다. 그럼 왜 항상 URI 을 언급할때 URL ,URN 은 같이 나올까? 그 이유에 대해서는 URI은 URN 과 URL 을 포함하고 있기 때문이다. 그러면 URL 은 무엇이고 URN 은 무엇일까? URL 은 우리가 평소에 인터넷에 접속할때 흔히 사용하는 주소 형식이다. 특징이 있다면 어떠한 자원에 대해서 위치와 어떤 자원을 원하는지..

jay Joon
'분류 전체보기' 카테고리의 글 목록 (3 Page)