베어_
TechBear
베어_
전체 방문자
오늘
어제
  • 분류 전체보기 (336)
    • Spring (33)
      • 개념 (13)
      • Security (5)
      • 실습 (1)
      • 토비 스프링 (11)
    • JPA (6)
    • 프로젝트 기록 (24)
    • DB (13)
    • JAVA (18)
    • 알고리즘 (50)
      • 유형정리 (8)
      • Baekjoon (21)
      • LeetCode (18)
    • 디자인패턴 (0)
    • 개발서적 (79)
      • Effective Java (78)
      • 객체지향의 사실과 오해 (1)
    • 독후감 (4)
    • 보안 (2)
    • 운영체제(OS) (53)
      • 공룡책 (53)
    • 컴퓨터 네트워크 (28)
      • 컴퓨터 네트워크 하향식 접근 (23)
    • 자료구조 (1)
    • DevOps (2)
    • 앱 개발 (20)
      • 안드로이드 스튜디오 (20)

블로그 메뉴

    공지사항

    인기 글

    태그

    • 이펙티브자바
    • 스프링시큐리티
    • 알고리즘
    • jpa
    • 스레드
    • java
    • 코드업
    • 스프링
    • leetcode
    • Spring
    • 자바8
    • C++
    • 백준
    • 운영체제
    • BFS
    • 데이터베이스
    • 자바
    • 함수형인터페이스
    • 토비스프링
    • dfs

    최근 댓글

    최근 글

    티스토리

    hELLO · Designed By 정상우.
    베어_

    TechBear

    컴퓨터 네트워크

    [네트워크] 쿠키, 세션, 토큰

    2023. 6. 7. 06:19

    HTTP 프토콜은 connectionless, stateless하다는 특징이 있다. 따라서 필요한 정보가 유지되지 않을 수 있다. 예를 들면 로그인을 하고 페이지를 이동하면 계속 로그인을 해야 하는 문제가 생긴다. 이런 문제점을 해결하기 위해 쿠키와 세션을 사용할 수 있다. 즉, 클라이언트와 서버 통신후에도 정보를 유지하기 위해 사용하는 것이 쿠키와 세션이다.

    쿠키

    쿠키는 사용자가 웹사이트에 접속하면 사용자의 PC에 저장되는 작은 기록 파일이다.

    [장점]

    1. 클라이언트에서 저장되고 사용되기 때문에 서버의 자원을 사용하지 않는다.
    2. 세션보다 빠르다.

    [단점]

    1. 로컬에 저장되기 때문에 기업에서 관리하는 서버의 보안보다 약하며 탈취 되기 쉽다.
    2. 변조되기 쉽다 -> 개발자 도구를 사용하면 웹 사이트별로 어떤 쿠키가 사용되고 있는지 알 수 있다.
    3. 용량 제한이 있다.

    세션

    일정 시간 동안 같은 사용자로부터 들어오는 일련의 요구를 하나의 상태로 보고, 그 상태를 유지하는 기술이다. 즉, 방문자가 웹 서버에 접속해있는 상태를 하나의 단위로 본다.

    [장점]

    1. 브라우저를 닫거나, 서버에서 세션을 삭제할 수 있기 때문에 쿠키보다 보안이 좋다.
    2. 용량 제한이 없다.

    [단점]

    1. 쿠키보다 느리다.
    2. 서버의 자원을 사용한다.

    JWT 토큰

    JWT(Json Web Token)이란 Json포맷을 이용한 Claim 기반의 웹 토큰이다. 클라이언트에 저장되어 사용되기 때문에 서버의 자원을 사용하지 않는다는 특징이 있다.

    JWT 토큰 포맷

    1. 헤더(Header) : 토큰의 타입과 암호화 알고리즘을 명시한다.
    2. 내용(Payload) : 사용자의 인증 정보 등 필요한 정보를 담는다. (key, value)형태로 구성된다.
    3. 서명(Signature) : 토큰의 유호성 검증을 할 때 사용된다. 헤더와 내용의 값을 인코딩 한다.

    [장점]

    1. JSON으로 생성된 토큰은 용량이 작다.
    2. 거의 모든 곳에서 생성되고 사용될 수 있다.
    3. 액세스 가능한 데이터와 지속 시간 등을 정할 수 있다.

    [단점]

    1. 단일 키 : 키가 유출되면 시스템 전체가 위험해진다.
    저작자표시 비영리 변경금지 (새창열림)
      '컴퓨터 네트워크' 카테고리의 다른 글
      • [네트워크] 대칭키와 비대칭키
      • [네트워크] 네트워크 계층
      • [네트워크] IP란?
      • [네트워크] HTTP란?
      베어_
      베어_
      Today I learned | 문제를 해결하는 개발자

      티스토리툴바