HTTP 프로토콜의 단점을 보완하기 위해서 사용한다
Connectionless 프로토콜 (비연결 지향)
클라이언트가 서버에 요청을 보내면, 응답을 보낸 후 연결을 끊는 처리방식이다.
*HTTP가 TCP를 기반으로 구현되어 연결지향적이라고 할 수 있다는 의견도 있으나, 서버측에서 커넥션 관리에 대한 비용을 줄이는 것이 명확한 장점으로 보기 때문에 비연결 지향으로 알아두었다.
Statelesss 프로토콜
커넥션을 끊는 순간 클라이언트와 서버의 통신이 끝나며 상태정보는 유지하지 않는 특성이 있다.
이전 데이터를 유지해야 하는 경우 쿠키와 세션을 사용한다.
HTTP의 일종으로 방문한 사이트가 사용하는 서버에서 사용자의 컴퓨터에 저장하는 기록정보 파일이다.
HTTP에서 클라이언트의 상태정보를 클라이언트의 PC에 저장했다가 필요시 정보를 참조하거나 재사용할 수 있다.
클라이언트에서 데이터를 보관하기 때문에 보안에 취약하다는 단점이 있다.
따라서 사용자의 편의성을 주되 보안이 중요하지 않은 데이터를 관리하는데 쓰인다.
예를 들면...
방문자가 웹 서버에 접속해있는 상태를 하나의 단위, 세션으로 본다.
이것을 유지시키는 기술이 세션이다.
클라이언트에서 관리하여 삭제되거나 조작되지 않도록 보호해야 하는, 서버 측에서 직접 관리해야 하는 정보들을 세션에서 다룬다. 하지만 세션을 남발하면 접속자가 많을 때 서버에 부하가 걸릴 수 있으므로 쿠키와 세션을 적절히 사용할 수 있어야 한다.
가져오는데 비용이 드는 데이터를 한번 가져온 뒤에는 임시로 저장해두는 것
사용자가 여러번 방문할 법한 사이트는 중간 역할을 하는 서버 혹은 사용자의 컴퓨터에 저장해두는 것을 말한다.
브라우저의 저장소를 말한다.
클라이언트에 데이터를 저장할 수 있도록 HTML5부터 새롭게 지원하는 저장소로, key,value형태로 데이터를 저장한다.
쿠키 | 웹 스토리지 | |
---|---|---|
서버 전송 여부 | 자동으로 서버에 전송된다. | 서버에 전송되지 않아 서버에 부담이 가지 않는다 |
도메인 단위로 접근이 제한되는 특성 이 있어 다른 도메인에서 요청해도 값을 꺼내 쓸 수 없다 |
웹 스토리지에는 로컬 스토리지와 세션 스토리지가 있다.
이 둘은 window객체의 프로퍼티로서 존재하며, 같은 스토리지 객체를 상속하기 때문에 동일한 메서드를 가진다.
이 둘의 차이점은 데이터의 영구성이다.
로컬 스토리지의 데이터는 사용자가 지우지 않는 이상 계속 브라우저에 남아있어 데이터의 영구성이 보장된다.
따라서 지속적으로 필요한 데이터를 저장할 때 활용할 수 있다.
ID 저장하기
항목 체크시 저장할 아이디, 비회원 카트 정보 등세션 스토리지의 데이터는 윈도우나 브라우저 탭을 닫을 경우 제거된다.
따라서 창이 닫기기전 세션이 만료되기 전까지만 유지할 정보를 저장하는데 활용할 수 있다.
비밀번호와 같은 중요 정보는 스토리지에 저장하지 않는 것이 좋다.
로컬 스토리지/ 세션 스토리지는 클라이언트 사이드이므로 쉽게 해킹당할 수 있다.
서비스/회사마다 유저 정보를 처리하는 방식은 다르기 때문에 그에 맞게 처리해야 한다.