UL :)
UL의 개발 블로그
UL :)
전체 방문자
오늘
어제
  • 분류 전체보기 (220)
    • 일상 (1)
    • 회고록 (7)
    • ChatGPT 아카이빙 (0)
    • PS(Java) (114)
      • 백준 (37)
      • 인프런 강의 문제 (77)
    • Web (69)
      • Spring (18)
      • JPA (7)
      • JSP (9)
      • HTML5 (12)
      • CSS (19)
      • HTTP (0)
      • 보안 (2)
    • Language (5)
      • Java (3)
      • JS (1)
      • Python (1)
    • Git, GitHub (4)
    • Settings (18)
      • IntelliJ (7)
      • Eclipse (2)
      • VSCode (3)
      • Android Studio (1)
      • VMware (2)
      • Mac (0)
    • Etc (1)

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

태그

  • @Table
  • 백준
  • @GetMapping
  • 정렬
  • @JoinColumn
  • @PostMapping
  • SEQUENCE 전략
  • @Id
  • 1차 캐시
  • HttpMessageConverter
  • produces
  • ReturnValueHandler
  • 요청헤더
  • ViewName반환
  • EntityManagerFactory
  • 엔티티 매핑
  • 영속성
  • @Column
  • @RequestParam
  • argumentresolver
  • 영속성컨텍스트
  • @ManyToOne
  • IDENTITY 전략
  • JPA
  • consumes
  • ORM
  • HandlerMethodArgumentResolver
  • BOJ
  • TABLE 전략
  • 동일성보장

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
UL :)

UL의 개발 블로그

Web/JSP

[JSP] Cookie 기본 개념

2020. 2. 26. 23:46

 

 

쿠키 : 웹 브라우저가 보관하는 데이터

 

- 웹 브라우저, 웹 서버 양쪽에서 생성가능
- JSP 에서 사용하는 쿠키 : 웹 서버에서 생성하는 쿠키

쿠키를 사용하면 웹 서버와 웹 브라우저가 필요한 값을 공유하고 상태를 유지 할 수 있음
자주 쓰이는 정보를 쿠키로 저장하곤 한다.

 


1. 쿠키 생성 : 웹 브라우저가 웹 서버에 요청을 보낼 때 쿠키를 응답 데이터의 헤더에 저장해서 함께 전송한다.

2. 쿠키 저장 : 웹 브라우저가 쿠키를 메모리나 파일로 쿠키저장소에 저장한다.

3. 쿠키 전송 : 요청이 있을 때 마다 저장한 쿠키를 웹 브라우저 -> 웹 서버로 전송

 


* 쿠키 구성요소 : 이름,값,유효시간,도메인,경로

 

 

* 쿠키 생성

Cookie 생성자 이름과 값을 인자로 호출 해서 새로운 객체 생성
response 기본객체의 addCookie() 메서드 호출
웹 브라우저에 쿠키 정보를 전송한다

※쿠키는 실제로 Set-Cookie 응답 헤더를 통해서 웹 브라우저에 전달되기 때문에 버퍼가 플러시 된 이후에는 새로 추가할 수 없다. 따라서 쿠키는 출력버퍼를 플러시하기 전에 추가해야 한다.

 


* 쿠키 값 변경

request.getCookies() 메서드로 쿠키 배열을 얻어온다
같은 이름의 쿠키를 새로 생성 후 응답 데이터로 보낸다

※쿠키가 존재하지않으면 생성되므로 반드시 같은 이름의 쿠키 존재여부 확인

 


* 쿠키 삭제

Cookie 클래스의 setMaxAge() 메서드를 인자 값 0으로 호출 후 응답 데이터로 보낸다

※쿠키도메인이 쿠키를 생성한 서버의 도메인을 벗어나면 웹브라우저는 쿠키를 저장하지 않음

ex : javacan.somehost.com에서 쿠키를 생성했을 때
쿠키 도메인 - 상위 도메인 지정 somehost.com -> 생성
    -  지정하지 않음 -> 생성
    - 다른 도메인 지정 otherdomain.com ->  X

이유: 다른 서버에서 쿠키 값을 변경할 수 있다면 보안이 뚫리게 되므로
웹 브라우저는 현재 서버에서 다른 도메인에 대한 쿠키 생성을 허용하지 않음

 

* 쿠키 경로(경로: URL에서 서버 주소 이후 부분)

Cookie.setPath() 메서드
경로 지정시 웹 브라우저는 지정한 경로나 그 하위 경로에만 쿠키를 전송
경로를 지정하지않으면 쿠키를 생성한 경로나 그 하위경로에서만 전송됨

=>일반적으로 쿠키는 웹 어플리케이션에 포함된 다수의 jsp와 서블릿에서 사용하기 때문에, 경로를 "/"로 지정(도메인의 모든 경로로 전송)

 


* 쿠키 유효시간

Cookie.setMaxAge() 메서드 사용. 초 단위로 지정
유효시간 지정하지 않으면 웹 브라우저 종료 시 쿠키 삭제
유효시간 지정하면 웹 브라우저를 종료해도 쿠키를 삭제하지 않고 유효시간 동안 보관

▶쿠키를 활용해서 클라이언트에서 아이디 기억하기 기능, 자동 로그인 기능 구현 가능

 

아이디를 평문 형태로 쿠키 값으로 사용하면 보안에 큰 문제가 생긴다(쿠키 값을 변경해서 다르 아이디로 서버에 접근 할 수 있게 된다)
쿠키에 아이디를 저장할 때에는 다양한 암호화 방식을 혼합해서 저장한다.

 

 

 

저작자표시 (새창열림)

'Web > JSP' 카테고리의 다른 글

[Tomcat] 콘솔 한글 깨짐 해결  (1) 2020.12.24
[JSP] Session 기본 개념  (0) 2020.02.27
[Tomcat] cookie domain error  (0) 2020.02.26
[Error] java.lang.NoSuchMethodError  (0) 2020.02.24
[Tomcat] 톰캣(tomcat) 설치  (0) 2020.02.11
    'Web/JSP' 카테고리의 다른 글
    • [Tomcat] 콘솔 한글 깨짐 해결
    • [JSP] Session 기본 개념
    • [Tomcat] cookie domain error
    • [Error] java.lang.NoSuchMethodError
    UL :)
    UL :)
    백엔드 개발자를 목표로 달리고 있습니다🔥

    티스토리툴바