2011-06-11 8 views
2

대부분의 HTTP 요청/응답에 HttpCore을 사용하여 Java로 작은 웹 서버를 작성합니다.
이제 쿠키를 생성, 저장 및로드하고 싶습니다. HttpCore에서 아무것도 찾을 수 없으며 다른 라이브러리에 익숙하지 않습니다. 쿠키를 처리 할 수있는 기존 라이브러리가 있습니까?Java에서 쿠키 생성 및로드

편집 : 쿠키 사용과 관련하여 다소 혼란 스러웠습니다. 어떻게 작동하는지 완전히 모르겠지만 세션을 유지하고 웹 서버에서 세션 변수에 액세스하려고합니다. 어떻게해야합니까? 브라우저가 쿠키를 저장하는 경우 쿠키를 서버로 보냅니 까? 어떻게 접근합니까?

+0

[ "HttpCore가 아닌 이유"] (http://hc.apache.org/httpcomponents-core-ga/tutorial/html/preface.html#d4e39)를 읽었 으면합니다. 자체 서버는 그렇게하지 않는 한 쿠키를 생성,로드 및 저장하지 않습니다. 개발자가 호출 할 서버용 API를 빌드해야합니다 (예 :). 도움이 필요하면 Tomcat의 기본 작동을 살펴보십시오. –

+0

그럼, 쿠키를 다루는 라이브러리의 방향으로 나를 가리켜 주셔서 감사합니다. –

+0

내 의견을 수정했습니다. 서블릿 컨테이너를 살펴보십시오. 이것이 서블릿 컨테이너의 작동 원리를 파악하는 가장 쉬운 방법입니다. HttpClient를 보지 않으려면 시나리오의 클라이언트 측보기를 제공해야합니다. –

답변

2

서버의 세션 지원은 일반적으로 객체 저장소를 사용하여 작성됩니다. 간단한 객체 저장소는 Map 또는 Set입니다. 이 상점의 오브젝트 (맵의 경우 값)는 논리 세션의 개념과 일대일 맵핑을 갖습니다. 즉, 서버가 작성한 각 세션마다 상점에 하나의 항목이 있습니다.

저장소에서 관리하는 세션은 특성이 연결된 세션을 허용 할 수 있습니다. 이러한 속성의 목록은 사전에 알려지지 않았을 수 있으므로이 목적을 위해 다른지도가 필요합니다. 키는 속성 이름이고, 값은 속성 값입니다.

세션 저장소 관리와 관련하여 서버에 API 호출이 이루어지면 저장소에 새 세션을 만들어야합니다. 간단한 말로하면, 웹 애플리케이션이 세션을 생성해야한다고 결정하면, 서버의 API는이를 수행하는 데 필요한 인터페이스를 제공해야합니다. 세션 객체만으로는 충분하지 않습니다. 처음 세션을 만들 때 세션 ID를 쿠키로 써야합니다. 이 경우 API는 적절한 응답을 작성할 수 있어야합니다. Servlet API, 특히 HttpServletRequest 및 HttpSession 클래스와이 목적을위한 서블릿 컨테이너 구현을 살펴볼 수 있습니다.

요청에서 쿠키에 액세스하는 주제에서 들어오는 HTTP 요청 헤더를 구문 분석하여 브라우저에서 보낸 쿠키를 확인해야합니다. 브라우저 및 기타 HTTP 클라이언트는이 목적으로 Set-Cookie 요청 헤더를 사용해야합니다. 요청에 유효한 쿠키가 제공된 경우에만 세션 객체가 웹 응용 프로그램에 반환 될 수 있도록해야합니다.