Cookies 기반 세션 추적 기술
Java Servlet API는 세션을 추적하고 세션의 상태를 관리하기 위해 Session을 사용합니다. 요청과 응답마다 Session ID를 포함하면 서버에서 사용자를 분리할 수 있습니다.
서브렛 사양에서는 세션 추적에 사용되는 세 가지 메커니즘이 있습니다.
1, SSL 세션
2、Cookies
3. URL 다시 쓰기
1、Cookies:
Cookies는 서버가 고객에게 보내는 단편 정보로 클라이언트 브라우저의 메모리나 하드디스크에 저장되어 고객이 서버에 대한 요청에 전송된다.
Cookies는 세션 추적 내용을 키-값 쌍으로 기록하고 서버는 응답 헤더 Set-Cookie를 이용하여 Cookie 정보를 보냅니다.JavaServletaPI에서는 javax를 사용할 수 있습니다.servlet.http.쿠키를 만드는 데 사용되는 쿠키 클래스입니다.
Cookies 기반 세션 추적:
JavaServletapI,javax.servlet.http.HttpSession 인터페이스는 Session의 개념을 봉인하고 서브렛 용기는 이 인터페이스의 실현을 제공한다.
세션을 요청하면 서브렛 컨테이너는 HttpSession 객체를 만들고 해당 객체에 고유한 Session ID를 할당하여 쿠키로 브라우저에 보내며 브라우저는 이 쿠키를 메모리에 저장합니다.
2. URL을 기반으로 다시 쓰는 세션 추적:
클라이언트가 쿠키를 받아들이지 않을 경우 URL 재작성 메커니즘을 사용하여 사용자의 세션을 추적할 수 있습니다.URL 재작성은 URL에 고객을 표시하는 Session ID를 추가하고 서브렛 용기에서 URL을 설명하며 Session ID를 꺼내서 요청에 따라 특정한 Session과 연결하는 것입니다.SessionID는 URL 문자열의 경로 매개 변수로 인코딩됩니다. 이 매개 변수의 이름은 jsessionid이어야 합니다.
서버는 SessionID를 URL의 일부로 클라이언트에게 보내고 클라이언트는 요청 URL에서 다시 전송합니다.
서버는 클라이언트에 보내는 모든 URL을 인코딩합니다. HttpServlet Response 인터페이스의 encode URL 방법과 encodeRedirect URL 방법을 통해 실현할 수 있습니다.
3. SSL(secure socket layer 보안 소켓 레이어):
SSL(secure socket layer 보안 소켓 레이어)은 TCP/IP 위에 HTTP와 같은 응용층 프로토콜을 실행하는 암호화 기술이다.SSL은 HTTPS 프로토콜에서 사용되는 암호화 기술입니다.SSL은 SSL을 사용하는 서버 인증을 SSL 클라이언트로 하고 클라이언트와 서버 사이에 암호화된 연결을 유지할 수 있다.암호화 연결을 구축하는 과정에서 고객과 서버는'세션 키'라는 것을 만들 수 있다. 이것은 메시지를 암호화하고 복호화하는 데 사용되는 대칭 키이다.HTTPS 프로토콜 기반 서버는 이 클라이언트의 대칭 키를 사용하여 세션을 만들 수 있습니다.
cookies 기반 세션 추적 자바 코드:
SetCookies.java:
public class SetCookies extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// Cookie, 6
for(int i = 0; i < 3; i++) {
// 3 Cookie,
Cookie cookie = new Cookie("Session-Cookie-" + i, "Cookie-Value-S" + i);
response.addCookie(cookie);
// 3 Cookie (3600 ,1 ), , Cookie
cookie = new Cookie("Persistent-Cookie-" + i, "Cookie-Value-P" + i);
cookie.setMaxAge(3600);
response.addCookie(cookie);
}
response.setContentType("text/html;charset=gb2312");
PrintWriter out = response.getWriter();
String title = "Setting Cookies";
out.println(" Cookie "
+ "" + title + "
"
+ "There are six cookies associates with this page.
"
+ "to see them,visit the "
+ "ShowCookies servlet"
+ "");
}
}
ShowCookies:
4
public class ShowCookies extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=gb2312");
PrintWriter pw = response.getWriter();
String title = "Active Cookies";
pw.println("init");
pw.println(" "
+ title
+ "
" + "
"
+ "
" + "
"
+ "
");
}
}
pw.println("Cookie Name Cookie Value" + "
");
// Cookie
Cookie[] cookies = request.getCookies();
if(cookies != null) {
Cookie cookie;
for(int i = 0; i < cookies.length; i++) {
cookie = cookies[i];
pw.println(" " + cookie.getName() +" " + cookie.getValue() +"
");
}
}
웹을 구성합니다.xml
SetCookies
SetCookies
SetCookies
/SetCookies
ShowCookies
ShowCookies
ShowCookies
/ShowCookies
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
java에서 Servlet 디코딩 처리 방법예를 들어 Stringstr=request.getParameter(“girl”);Byte B[]=str.getBytes(“ISO-8859-1”);Str=new String(B);상술한 전환을 통해 제출한 모든 정보가...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.