HTTP 의 특징
비연결 지향
요청에 대한 response를 보낸 후 연결을 끊는다.
상태정보 유지 안함
상태정보를 사용 후 유지 하지 않는다.
이러한 이유때문에, 지속적으로 사용하기 위하여 쿠키와 세션을 사용한다.
쿠키
웹페이지에 요청을 하고, 결과값을 받을 때 로컬에 키와 값으로 이루어진 파일을 받으며,
이 파일은 이름,값,경로정보, 만료정보 가 들어 있다.
후에 페이지를 다시 요청할 때, request header에 들어가 자동으로 서버 요청에 사용된다.
쿠키는 보통 클라이언트에 300개 까지 저장이 가능하고, 도메인당 20개까지 저장이 가능하다.
클라이언트에 저장한 채로 전송하기 떄문에, 처리 속도가 매우 빠른 반면, 로컬에서 값이 변조당하거나
request에서 스나이핑 당할 위험이 있다.
가장 쉬운 예제로, 로그인 상태 유지, 오늘은 이 페이지 더 이상 보지 않기, 장바구니 기능 등이 있다.
# 세션 일정시간동안 같은 브라우저에서 들어오는 요청을 유지하는 기술이다.
쿠키는 로컬에 저장되는 반면, 세션은 서버에서 관리를 하기 때문에 서버에 무리가 있다.
그러한 이유로, 세션이 보안에 훨씬 좋지만, 쿠키를 사용 하기도 한다.
클라이언트에서 요청을 하면, 서버에서 유일한 세션아이디를 부여하여 해당 클라이언트에 보내어
그것을 쿠키로 만들어 사용한다.
쿠키는 로컬에 저장하기에 만료시간이 다 될때까지 사용자가 삭제하지 않으면 정보가 유지되는 반면,
세션은 브라우저가 닫히면 만료시간에 상관없이 종료된다.
# 캐시 캐시는 이미지같은 파일들을 로컬에 저장시켜서, 해당 페이지에 다시 접속 할 때 새로 요청 하지 않아도 되도록 하는 방법이다.
이 방법을 사용하면, 웹페이지에서 해당 이미지를 바꾸었지만, 바꾸지 않은 것 처럼 보일 수 있는데, 이를 예방 하기 위해서
캐시를 지우거나, 캐시만료시간을 설정 하면 된다.