
매일 공부를 하고 있는데 뭔가 머리에 잘 쌓이지 않는 느낌이 들어서 TIL을 작성해 보려고 한다. 매일 내가 공부한 것을 정리하는 시간이 필요하다는 것은 아는데 그게 잘 지켜지지 않았다.
JWT (JSON Web Token)JSON 형식을 가진 보안 토큰의 일종으로, 정보를 안전하게 전달하기 위해 사용한다.
Bearer Token이라는 용어는 JWT를 전송하는 방식을 나타낸다. Bearer Token은 요청 헤더의 Authorization 필드에 'Bearer'라는 문자열과 함께 JWT를 넣어 전송하는 방식이다.
브라우져가 서버로부터 응답으로 set-cookie 헤더를 받을 경우 해당 데이터를 브라우져에 저장한 뒤 그 다음 모든 요청에 이 쿠키를 포함시켜서 보낸다.
쿠키를 가진 상태에서는 이 클라이언트가 서버로 매번 request를 할때마다, 즉 해당하는 서버에 request를 보낼때마다 해당하는 쿠키정보를 가진 채로 계속 서버에 전달하게 되는 것이다.
쿠키를 발급하는 조건은 일반적으로 로그인 기능이다. 서버는 사용자가 로그인에 성공했다라고 한다면, 해당하는 사용자의 정보를 바탕으로 해서 쿠키 정보를 클라이언트에게 response로 전달해주게 된다.
쿠키는 일반적으로 쿠키안에 해당하는 사용자가 누군지, 사용자의 정보가 무엇인지 다 담기게 된다.
실제 정보를 서버에 저장하는 장점을 가지는데, 쿠키랑 다르게 좀 더 안정적이다. 그렇지만 결국에 쿠키에 기반해서 구현된다.
전송되는 순수한 데이터이다.
쿠키를 검증한다. 쿠키에 담긴 JWT를 이용한다.
비밀번호를 암호화시켜준다.
엑세스 토큰이 만료되었을 때, 새로운 엑세스 토큰을 발급받기 위한 토큰입니다. 엑세스 토큰이 유효기간이 지나면 리프레시 토큰을 사용하여 새로운 엑세스 토큰을 발급받아 인증을 유지합니다.
실제로 내가 API를 사용하기 위해 필요한 토큰이다.
컴퓨터가 작업하는 동안에만 필요한 정보를 RAM(Random Access Memory)에 저장한다는 것을 의미한다.
클라이언트가 서버로 요청을 보낼때, 해당 요청에 대한 정보를 포함한다. Cookie도 이 요청헤더에 담기게 된다.
서버가 재시작 되더라도 동일하게 작동한다
서버가 계속 관리해줘야 한다.
간단히 말해서 어떤 작업이 이루어지는 순서와 그 작업이 처리되는 방법을 나타내는 것이다.
데이터베이스에서 각각의 데이터를 구분하고 식별하기 위한 특별한 식별자라고 볼 수 있어있다. 대부분의 경우 uuid는 문자열의 형태를 가진다.
HTTP 요청(request) 객체를 나타낸다. 클라이언트로부터 오는 요청에 대한 정보를 포함한다.
HTTP 응답(response) 객체를 나타낸다. 클라이언트로 응답을 보내는 데 사용되며, 요청에 대한 응답으로 상태 코드, 헤더, 데이터 등을 설정합니다.
클라이언트로부터 받은 요청의 본문(body)을 나타냅니다. 주로 POST나 PUT과 같은 요청에서 클라이언트가 보낸 데이터를 담고 있습니다.
이것은 주로 사용자 인증(authentication)과 관련이 있습니다. 로그인한 사용자의 정보나 사용자의 권한 등을 담고 있습니다.
라우팅 경로의 매개변수(parameter)를 나타냅니다. 예를 들어, URL의 특정 부분에 있는 값을 가져오고 사용할 수 있게 해줍니다.
200 OK: 요청이 잘 처리되었다는 걸 뜻이다.
201 Created: 요청이 성공적으로 처리되어 새로운 리소스가 생성되었음을 나타냅니다. 주로 POST 요청 후 새로운 리소스가 만들어졌을 때 사용됩니다.
400 Bad Request:
요청이 서버에 전달되었지만 잘못된 구문 또는 유효하지 않은 요청으로 인해 처리할 수 없음을 나타냅니다.
401 Unauthorized: 요청한 리소스에 접근할 권한이 없음을 나타냅니다. 클라이언트가 인증되지 않았거나 인증 정보가 유효하지 않을 때 사용됩니다.
404 Not Found: 뭔가를 찾을 때 "404"라는 숫자는 찾는 것이 없다는 걸 의미한다. 주로 잘못된 URL을 요청했을 때나 존재하지 않는 리소스에 접근했을 때 반환됩니다.
500 Internal Server Error: 서버 내부에서 오류가 발생하여 요청을 처리할 수 없음을 나타냅니다. 주로 서버에서 예상치 못한 오류가 발생했을 때 반환됩니다.