프로그래밍 노트/WEB

서버 인증방식 종류에 대해 살펴보자. 더 불어 토큰인증방식에 사용되는 JWT도 간단하게 알아보자. 1. 세션/쿠키 인증방식 서버 측에서 사용자들의 정보를 기억한다. 사용자들의 정보를 기억하기 위해 세션을 사용한다. (메모리나 디스크 또는 데이터베이스 등을 이용. 보통 Redis를 많이 사용한다고 한다.) flow 사용자 로그인 서버에서 계정정보 검증 후 사용자의 고유한 ID값을 부여하여 세션 저장소에 저장 후 매핑되는 세션 ID를 발행 사용자는 서버에서 발급받은 세션 ID를 쿠키에 저장한 후, 요청을 보낼 때 같이 전송 서버에서는 쿠키를 받아 세션 저장소에서 데이터를 검증 후 대응되는 정보를 가져옴 특징 HTTP 요청 중 쿠키가 탈취당해도, 쿠키(세션 ID)는 의미가 있는 값이 아니기 때문에 보안상 안전..
요즘 트렌드는 프론트/백엔드의 분리이다. 그러다보니 사용자에게 페이지를 제공할 때, 서버렌더링 방식이아닌 클라이언트 렌더링(브라우저에서 화면을 그림)방식을 많이 사용하게 된다. 나는 백엔드 개발자이긴 하지만, 프론트개발관련해서 웹애플리케이션이 브라우저에서 어떻게 동작하고 최적화 방법에 대해 공부가 필요해서 해당 내용을 정리하게 되었다. 참고한 책은 https://book.naver.com/bookdb/book_detail.nhn?bid=4587095 (웹 사이트 최적화 기법) 이며, 필요하다고 생각한 내용들만 적을 생각이다! 현실적으로 대부분의 웹 페이지는 최종 사용자의 반응 시간(브라우저 반응 시간) 중 HTML문서를 웹 서버로부터 다운로드 받는 데 소요되는 시간이 10~20%도 채 되지 않는다. ⇒ ..
API를 만들다보면, Timeout에 관한 얘기들을 많이 듣곤한다. 일정 시간동안 응답이 없으면, 실패처리해주세요. 몇 초 동안 기다렸다가 응답이 안오면, retry를 해주세요. 등등 처음에 Timeout의 종류를 들으면 상당히 헷갈리는데, 헷갈릴때마다 참고하기 위해.. 정리를 해둔다. Connection Timeout 클라이언트가 어떤 사유로 인해서 서버에 접근자체를 실패했을시 적용되는 것이 Connection Timeout이다. 접근을 시도하는 시간제한이 Connection Timeout이 된다. 예를 들어, Connection Timeout이 5초인 Apache 서버가 있다. 그런데 이 Apache서버에 요청이 몰려서, 요청이 처리되려면 상당시간 기다려야 한다.(5초 이상) 그렇게 되면 클라이언트에..
2019/06/07 - [프로그래밍 노트/WEB] - REST API 보안_인증(Authentication) 2019/05/30 - [프로그래밍 노트/WEB] - REST API 보안_1 ※ 모든 REST API보안관련된 내용은 거의 내용이 비슷하다고 봐도 무방할정도로 조대협님의 블로그를 참고하였다. 쉽고 자세하게 설명이되 있어서 .. 블로그 구독을 눌렀다. (조대협님의 블로그) 인증이 끝나면 인가(Authorization)과정이 필요하다. 사용자가 인증을 받고 로그인을 했더라도 해당 API를 사용할 수 있는 권한이 있는지 체크하는 과정이 필요하다. 예를 들면 일반사용자가 사용자를 삭제하는 API를 호출할 수 있게 되면 큰일나기 때문에 (관리자만 사용해야함) 인증을 통해서 시스템 내의 사용자임을 확인 받..
2019/05/30 - [프로그래밍 노트/WEB] - REST API 보안_1 ※ 모든 REST API보안관련된 내용은 거의 내용이 비슷하다고 봐도 무방할정도로 조대협님의 블로그를 참고하였다. 쉽고 자세하게 설명이되 있어서 .. 블로그 구독을 눌렀다. (조대협님의 블로그) 여러가지 인증 방법의 장단점을 잘 이해하여 서비스 주준에 맞는 적절한 API 인증 방식을 선택하자. 인증(Authentication)방식 1.API Key 방식 가장 기초적인 방식으로, API Key를 사용자에게 제공하여 유효한 API Key를 가진 사용자들만 API사용을 허용하는 방식이다. API Key는 일종의 문자열이며, API를 사용하고자 할 때 개발자는 API 제공자의 포탈 페이지 등에서 API Key를 발급 받고, API를 ..
※ 모든 REST API보안관련된 내용은 거의 내용이 비슷하다고 봐도 무방할정도로 조대협님의 블로그를 참고하였다. 쉽고 자세하게 설명이되 있어서 .. 블로그 구독을 눌렀다. (조대협님의 블로그) 근래에 대부분의 서비스 시스템들은 API를 기반으로 통신을 한다. 보안에 관하여 알아보자. REST API 보안 관점 크게 아래와 같은 5가지 형태로 나눠진다. 1. 인증(Authentication) 누가 서비스를 사용하는지를 확인하는 절차이다. 우리가 네이버나 구글에 아이디와 비밀번호를 넣어서, 사용자를 확인하는 과정을 인증이라 할 수 있다. API도 마찬가지로 API를 호출하는 대상을 확인하는 절차가 필요하고 이를 API 인증이라 한다. 2. 인가(Authorization) 인가는 해당 리소스에 대해서, 사용..
REST API 디자인 가이드 URI는 정보의 자원을 표현해야 한다. 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE)로 표현한다. 중심 규칙 사용자 추가, 삭제, 수정을 하는 REST API를 설계해보자. URI는 정보의 자원을 표현해야 한다. (리소스는 명사를 선호) GET /members/delete/1아이디가 1인 계정을 삭제하라는 뜻 같다. 이것은 REST 할까? REST하지 않다. URI는 자원을 표현하는데 중점을 두어야 하며, delete같은 행위에 대한 표현이 들어가면 안된다. 위의 URI는 아래와 같이 수정할 수 있다. DELETE /members/1HTTP Method 그렇다면 회원을 추가하거나 정보를 조회하는 것을 설계해 보자. 회원정보 조회 GET ..
[들어가기전] REST API라고하면, 데이터를 json으로 주고받고 행위에 맞게 HTTP Method를 셋팅해주는 것으로만 알고 있었다.(동영상 보기전까지) 몇 달전에 스프링을 이용한 RESTful 웹 서비스 구축하기 책을 보며 프로젝트를 따라해보았는데, 책의 마지막부분 쯤에 HATEOAS라는 부분이 있었다. spring에서 제공해주는 것인데 링크를 만들어주는 라이브러리 였다. REST API 구축하는데 이게 왜 들어가있지라는 궁금증을 갖긴 했었는데 이 동영상을 보고나니 그 궁금증이 풀렸다. 결론적으로 말하자면, 우리가 얇게 알고 만들었던 REST한 API는 사실 REST API가 아닐지도 모른다. 그저 HTTP API라고 불러야 하며 REST API는 여러가지 제약조건을 만족시켜야 한다. REST R..
HTTP(HyperText Transfer Protocol) WWW(웹)상에서 정보를 주고받을 수 있는 프로토콜 이다. 주로 HTML 문서를 주고 받는데 쓰이며, TCP UDP 80포트를 사용한다. HTTP/1.0(1996년), HTTP/1.1(1999년)에 발표되었다. Client server 우리는 웹개발을 위해 HTTP Message를 이해할 필요가 있다. 작년에 개인프로젝트로 web-application 서버를 직접 구현하면서 HTTP 스펙 지식에 대한 필요성을 느꼈었는데 까먹고있었는데, 오늘 Rest 관련 동영상을 보게되어 HTTP Message에 대해 정리를 당장 하기로 하였다. HTTP Message Format 형식 (Request Message & Response Message ) HTT..
MIME 타입이란 클라이언트에게 전송된 문서의 다양성을 알려주기 위한 메커니즘이다. 웹에서 파일의 확장자는 별 의미가 없다. 그러므로, 각 문서와 함께 올바른 MIME 타입을 전송하도록, 서버가 정확히 설정하는 것이 중요함. 브라우저들은 리소스를 내려받았을 때 해야 할 기본 동작이 무엇인지를 결정하기 위해 대게 MIME 타입을 사용 문법 일반적인 구조 type/subtype / 로 구분된 두 개의 문자열인 타입과 서브타입으로 구성되며 스페이스는 허용하지 않는다. 개별 타입 특정 서브타입이 없는 텍스트 문서들에 대해서는 text/plain 이 사용되어야함. 특정 혹은 알려진 서브타입이 없는 이진 문서에 대해서는 application/octect-stream 을 사용해야함 멀티 파트 타입 multipart/..
깡냉쓰
'프로그래밍 노트/WEB' 카테고리의 글 목록