2012-08-10 3 views
1

프로그램을 계속 실행하는 동안 웹 사이트에 로그인하려고합니다. 결국 세션이 종료됩니다.쿠키 및 로그인과 관련하여 JSESSIONID 및 PSESSIONID는 무엇입니까?

import urllib 
import urllib2 
import cookielib 
import re 

url = 'https://www.locationary.com/' 

data = urllib.urlencode({"inUserName":"EMAIL", "inUserPass":"PASSWORD"}) 
jar = cookielib.FileCookieJar("cookies") 
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(jar)) 
opener.addheaders.append(('User-agent', 'Mozilla/5.0 (Windows NT 6.1; rv:13.0) Gecko/20100101 Firefox/13.0.1')) 
opener.addheaders.append(('Referer', 'http://www.locationary.com/')) 
opener.addheaders.append(('Cookie','site_version=REGULAR; JSESSIONID=781FD0C497FB596954BB78B1323215F6')) 
request = urllib2.Request("https://www.locationary.com/index.jsp?ACTION_TOKEN=tile_loginBar_jsp$JspView$LoginAction", data) 
response = opener.open(request) 
page = opener.open(url).read() 
print re.findall(r'<title>(.*)</title>', page) 
h = response.info().headers 
print h 

출력은 다음과 같습니다 :

['Home Page'] 
['Server: nginx/1.0.8\r\n', 'Date: Fri, 10 Aug 2012 17:07:47 GMT\r\n', 'Content-Type: text/html;charset=UTF-8\r\n', 'Transfer-Encoding: chunked\r\n', 'Connection: close\r\n', 'Set-Cookie: PSESSIONID=533e2fb9fda008d5d16bfbdc9b9a6afed0e5ac54; Path=/\r\n', 'P3P: CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"\r\n', 'Set-Cookie: PSESSIONID=533e2fb9fda008d5d16bfbdc9b9a6afed0e5ac54; Path=/\r\n'] 

내가 실험 ... 내가 쿠키의 JSESSIONID 부분을 꺼내서 경우, 내 출력이 될 것입니다 여기에

내 테스트 프로그램입니다 마치 내가 로그인하지 않은 것처럼 웹 사이트의 홈 페이지 ... "홈 페이지"대신 "Locationary.com"을 말합니다. JSESSIONID를 넣으면 모든 것이 작동하지만 서버가 PSESSIONID라는 쿠키를 설정합니다 ...이 모든 것이 무엇을 의미합니까 ... 어떻게하면 내 세션이 시간 초과되지 않도록 할 수 있습니까? 30 분마다 다른 JSESSIONID를 찾아야합니까?

답변

1

쿠키는 세션없는 프로토콜 (예 : http)을 통해 세션의 환상을 만들기 위해 사용되는 메커니즘입니다. 당신은 그것에 대해 모든 것을 읽을 수 있습니다, 그냥 구글 (주위에 많은 좋은 설명이 있습니다).

set-cookie 머리글을 얻을 때마다 올바르게 작동하도록하려면 그 값을 유지하고 (이전 값을 같은 이름으로 바꾸십시오) 보낸 모든 요청과 함께 보내십시오. 견고성을 위해 사전을 사용하는 것이 좋습니다.

웹 사이트에서 처리해야 할 시간에 관해서는 쿠키 주문 (예 : 쿠키 설정)을 따르기 만하면됩니다.