HTTP 통신은 요청, 응답에 대한 데이터를 저장하지 않고(stateless) 응답한 뒤에는 요청을 끊는다(connectionless).
HTTP는 위 특성으로 인해 각 요청이 독립적으로 관리된다. 하지만 웹 브라우저를 사용하다보면 로그인 페이지 요청 응답에 내 아이디, 비밀번호가 적혀있거나, 이전에 내가 설정한 언어로 나오는 경우가 있다.
이런 경우를 Stateful이라고 하고, Stateful한 HTTP 통신을 위해 이전 통신에 대한 정보를 쿠키, 세션, 캐시로 저장한다.
쿠키는 클라이언트에 저장되는 정보이다. HTTP 헤더에 포함되는 정보를 저장하고 Key, value
방식의 텍스트로 구성되어있다. 때문에 해당 컴퓨터를 확인하면 누구나 입력된 값을 알 수 있기 때문에 보안에 취약하다.
주로 자동 로그인, 위시리스트 등을 저장할 때 사용된다.
세션은 쿠키와 같은 개념이지만 보안을 위해 서버에 저장되는 정보이다. 서버에 저장되는만큼 보안이 좋지만, 속도가 느리고 웹 브라우저를 종료하면 같이 사라진다.
이미지, 비디오, 오디오 등이 있는 웹 페이지를 로딩할 때 웹 브라우저는 리소스 파일을 임시 저장소에 저장한다. 이떄 임시 저장소를 캐시라고 한다. 이후 같은 페이지에 접속하면 리소스를 서버가 아닌 클라이언트의 임시 저장소에서 가져오기 때문에 속도가 빠르다.
최종 수정 : 2021-03-29