1. 공통점 및 차이점 두 토큰 모두 JWT 기반이다 Access Token은 API요청을 할 때 검증용 토큰으로 사용된다. 즉, 인증이 필요한 APi를 사용할때는 꼭 Access Token을 Header에 넣어서 보내야한다. ex) 유저 정보 수정, 회사 채용 공고 지원 인원 확인 등 Refresh Token은 Access Token을 추가로 발급할 때 사용된다. Access Token을 새로고침(Refresh)하는 기능이 있기 때문에 Refresh Token 이라고 부른다. Access Token은 유효기간이 짧고, Refresh Token은 유효기간이 길다. 자주 노출되는 Access Token은 유효기간을 짧게 해서 Token이 탈취돼도 해커가 오래 사용하지 못하도록 방지할 수 있다. 상대적으로 ..
네트워크
1. Session이란? 유저의 정보를 데이터베이스에 저장하고 상태를 유지하는 도구 Session의 특징 session은 특수한 ID 값으로 구성되어있다. Session은 서버에서 생성되며 클라이언트에서 쿠키를 퉁해 저장된다. 클라이언트에서 요청을 보낼 때 Session ID를 같이 보내면 현재 요청을 보내는 사용자가 누구인지 서버에서 알 수 있다(요청마다 매번 아이디와 비밀번호를 물어볼 필요 없음)→ JWT토큰도 마찬가지 Session ID는 데이터베이스에 저장되기때문에 요청이 있을때마다 매번 데이터베이스를 확이해야한다 서버에서 데이터가 저장되기때문에 클라이언트에 사용자 정보가 노출될 위험이 없다.→session ID는 아무런 의미 없는 string이기 때문! 데이터 베이스에 Session을 저장해야하..
오늘은 HTTPS에 대해서 알아보도록 하겠습니다.... 사실 HTTPS를 설명하기 위해서 HTTP를 해왔던거라고 보시면 됩니다.. 왜냐하면 3차프로젝트에서 HTTPS로 배포해야하는 상황이었는데, 그게 잘 안되고 찾아볼 레퍼런스도 부족해서 얘를 완벽하게 이해하고 접근해야겠다는 생각에 다시 공부하기로하고 공부를 끝내고 적고있는겁니다,,,ㅎ 그럼 시작해 보겠습니당!! 일단 HTTPS?? 간단하게 말하자면 암호화된 HTTP입니다. 그럼 먼저 암호화가 무엇인지부터 알고 가는게 좋겠죠? 1. 암호화 암호화는 승인된 당사자만 정보를 이해할 수 있도록 데이트를 "스크램블"한 방법입니다. 이를 복호화하려면 송신자와 수신자가 서로 동의한 "key"가 필요합니다. 또한 이를 만들기 위한 키가 쓰이기도 합니다. ciphert..
1. HTTP/2 2009년 구글은 HTTP/1.1의 한계를 극복하기 위해 SPDY 프로토콜을 개발했습니다. 이후 2015년, SPDY를 기반으로 하는 HTTP/2 프로토콜을 만들었습니다. (1) 바이너리 포맷 계층 애플리케이션 계층과 전송 계층 사이에 바이너리 포맷 계층을 추가합니다. HTTP 1.0은 일반 텍스트 메시지를 전송하고 줄바꿈으로 데이터를 나눴다면, HTTP 2.0은 0과 1로 이루어진 바이너리 데이터로 변경되었고, 더 작은 메시지가 프레임으로 캡슐화되어 전송됩니다. (2) 멀티플렉싱 단일 TCP연결의 여러 스트림에서 여러 HTTP 요청과 응답을 비동기적으로 보낼 수 있습니다. 이를 통해 HOL을 해결합니다. 1.1에서는 병렬요청을 하려면 다중TCP연결을 통해서 하고 일반적으로는 TCP연결..
오늘은 HTTP의 발전과정을 알아보도록 하겠습니다 1. HTTP/1.0 수명이 짧은 연결이라고 합니다. HTTP요청은 자체 요청에서 완료가 됩ㄴ다. 각 요청당 TCP핸드셰이크가 발생되며 기본적으로 한 연결당 하나의 요청을 처리하도록 설계되어 있습니다. 한번 연결할 때마다 TCP연결을 계속해야하니 RTT가 늘어나는 문제점이 있었습니다. ** RTT?? Round Trip Time(왕복지연시간): 신호를 전송하고 해당 신호의 수신확인에 걸린 시간을 더한 값이자 어떤 메시지가 두 장치 사이를 왕복하는데 걸린 시간 이를 해결하기 위해 HTTP/1.1이 나옵니다! 2. HTTP/1.1 이전과의 3가지 차이점 (1) keep-alive default 매번 데이터를 요청할 때마다 TCP연결을 하는게 아닌, 한번 해놓..
새싹에서 1,2차 프로젝트를 하면서 모두 Http로 배포를 하였는데요! 오늘은 이 HTTP에 대해서 꼼꼼히 살펴보도록 하겠습니다! 1. HTTP 헤더(header) 사용자가 HTTP요청을 하게 되면 헤더와 바디를 주고 받습니다. 여기에서 Headers에 있는 컨텐츠를 헤더! Body에 있는 컨텐츠를 바디라고 합니다! 당연하죠?ㅎㅎ 바디는 본문이라고 할 수 있으며 서버에서 보내고자하는 컨텐츠 본문인 JSON, html, image등이 담깁니다. 우리가 보통 api요청을 하면 JSON이 왔지만, 특정한 경우에 에러가 올때... 특히 502에러같은게 나오면 html이 오는 경우를 종종 봤었죠..? 헤더는 바디를 설명하는 정보를 포함해서 여러가지 정보가 담긴 정보 묶음이라고 보면 됩니다! 즉, HTTP전송에 필..