>백엔드 개발 >파이썬 튜토리얼 >Python에서 쿠키 처리 (1) 쿠키 라이브러리

Python에서 쿠키 처리 (1) 쿠키 라이브러리

黄舟
黄舟원래의
2016-12-23 17:30:321622검색

쿠키는 서버에서 세션, 사용자 로그인 시 상태 관리 및 관련 기능을 구현하는 데 사용됩니다. 사용자 브라우저에 쿠키를 설치하기 위해 HTTP 서버는 HTTP 응답에 다음과 유사한 HTTP 헤더를 추가합니다.

Set-Cookie: session=8345234;expires=Sun, 15-Nov-2013 15: 00:00 GMT; path=/; domain=baidu.com

expires는 쿠키의 수명 주기이고, path는 쿠키의 유효한 경로이며, domain은 쿠키의 유효한 도메인입니다. .

경로 "path" "쿠키를 읽을 수 있는 최상위 디렉터리를 설정하는 데 사용됩니다. 쿠키 경로를 웹페이지의 최상위 디렉터리로 설정하면 해당 디렉터리의 모든 웹페이지가 쿠키에 액세스할 수 있습니다.

방법: 쿠키에 path=/를 추가합니다. "food" 디렉토리의 웹 페이지만 이 쿠키를 사용하려면 path=/food.

도메인을 추가하세요. 예를 들어 Baidu에는 "news.baidu.com", "zhidao.baidu.com" 및 "v.baidu.com"이라는 도메인 이름으로 웹 페이지가 있을 수도 있습니다. "baidu.com" 아래의 모든 컴퓨터가 쿠키를 읽을 수 있도록 하려면 쿠키에 "domain=.baidu.com"을 추가해야 합니다.

사용자의 브라우저는 쿠키가 만료될 때까지 쿠키를 저장하고, 브라우저는 경로 및 도메인과 일치하는 서버에 다음과 유사한 HTTP 요청 헤더를 보냅니다.

쿠키: 세션= 8345234.

예를 들어 www.baidu.com에 로그인할 때 Baidu 서버가 다시 보낸 HTTP 응답 헤더의 쿠키는 다음과 같습니다.

Set-Cookie:H_PS_PSSID=4681_4567_1452_9876_4759; /; domain=.baidu.com
Set-Cookie:BDSVRTM=74; path=/  

브라우저의 HTTP 요청 헤더:

Cookie:BAIDUID=0FD996SDFG12*** *** **107B9C227F4C:FG=1; bdshare_firstime=1384567418140; NBID=D830DD2345HH2818A9F4134E5A2D778D3B:FG=1; PSSID=468 1_4567_1452_9876_4759

브라우저 쿠키를 다시 보냅니다. HTTP 서버를 사용할 때 key=value 문자열의 인코딩 형식이 사용되며 만료, 경로, 도메인과 같은 선택적 속성은 반환되지 않습니다.

쿠키 문자열은 일반적으로 HTTP_COOKIE 환경 변수에 있으며 다음과 같이 읽을 수 있습니다.

import osPRint "Content-type: text/plainn"
if "HTTP_COOKIE" in os .environ:
print os.environ["HTTP_COOKIE"]
else:
print "HTTP_COOKIE not set!"

Python의 쿠키 모듈(python3의 http.cookies) )는 Morsel이라는 쿠키 값 모음을 저장하고 관리하는 특수 사전형 개체 SimpleCookie를 제공합니다.

각 Morsel에는 이름, 값 및 선택적 속성(만료, 경로, 도메인, 설명, 최대 연령, 보안, 버전, httponly)이 있습니다.

SimpleCookie는 출력() 메소드를 사용하여 HTTP 헤더 형식의 쿠키 데이터 출력을 생성하고, js_output() 메소드를 사용하여 자바스크립트 코드가 포함된 문자열을 생성할 수 있습니다.

HTTP_COOKIE로 쿠키 생성:

cookie=Cookie.SimpleCookie(os.environ['HTTP_COOKIE'])
cookie.output() 인쇄

쿠키 설정:

쿠키 가져오기
날짜/시간 가져오기
임의로 가져오기

expiration = datetime.datetime.now() + datetime.timedelta(days=30)
cookie = Cookie.SimpleCookie()
쿠키["session"] = 무작위.randint(1,1000000000)
쿠키["session"]["domain"] = ".baidu.com"
쿠키[" session"]["path"] = "/"
cookie["session"]["expires"] =expiration.strftime("%a, %d-%b-%Y %H:%M:% S PST")

print "Content-type: text/plain"
print cookie.output()
print
print "쿠키 세트: " + cookie.output()

출력:

콘텐츠 유형: 텍스트/일반
세트 쿠키: 세션=155209565; 도메인=.jayconrod.com 만료=월, 2014년 3월; 07:42:47 PST; 경로=/쿠키 세트: Set-Cookie: session=155209565; Domain=.jayconrod.com; 만료=2014년 3월 3일

위 내용은 쿠키의 Python 처리 (1) 쿠키 라이브러리의 내용, 더 많은 관련 내용을 보려면 PHP 중국어 웹사이트(www.php.cn)를 참고하세요!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:5장 파이썬 숫자다음 기사:5장 파이썬 숫자