웹사이트는 쿠키를 통해 접속자의 장치를 인식하고,
접속자의 설정과 과거 이용내역에 대한 일부 데이터를 저장한다.
< 폴더 경로 >
< app.py >
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
from flask import Flask
from flask import render_template
from flask import request, make_response
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html') # 로그인 페이지
@app.route('/setcookie', methods = ['POST', 'GET'])
def setcookie():
if request.method == 'POST': # request 객체는 post형식으로 값을 받음.
user = request.form['nm'] # html에서 submit하는 순간 user라는 변수에 값이 받아짐.
resp = make_response(render_template('readcookie.html')) # 쿠키 생성 페이지
resp.set_cookie('userID', user)
return resp
@app.route('/getcookie') # 쿠키 출력 페이지
def getcookie():
name = request.cookies.get('userID') # 쿠키로 받은 아이디를 name에 저장.
return '<h1>welcome '+name+'</h1>'
if __name__ == '__main__':
app.run(host='0.0.0.0', port = 80, debug = True)
|
< index.html >
1
2
3
4
5
6
7
8
9
|
<html>
<body>
<form action = "/setcookie" method = "POST">
<p><h3>Enter userID</h3></p>
<p><input type = 'text' name = 'nm'/></p> <!--이름 압력-->
<p><input type = 'submit' value = 'Login'/></p> <!--로그인을 하기위한 버튼-->
</form>
</body>
</html>
|
< readcookie.html >
파일 안에 내용은 없지만
브라우저에서 쿠키 값을 다시 읽고 표시하는
getcookie()에 대한 하이퍼링크가 포함되어있다.
Login버튼을 누르면 localhost/setcookie로 이동한다.
setcookie함수가 실행되면서 쿠키가 생성된다.
# 쿠키는 클라이언트 쪽에 저장함. 보안상에 문제로 잘 사용하지 않음.
# 보안문제 = 내 pc에 있는 쿠키값을 훔쳐서 다른 pc에서 타인이 로그인 가능한 문제.
# 쿠키를 클라이언트 쪽에 주지않고 정보를 클라이언트에게 줄 수 있는 방법을 고민하다
# 세션이라는 개념이 생겨남. 세션은 서버쪽에서 가지고 있음.
# 세션기능: 서버쪽에 파일처럼 메모리 공간을 만든 후 (tcp/ip는 원래 세션기능이 없음.)
# 로그인 했을 때 일정 시간동안 연결을 유지시켜주는 기능.
# 일정 시간이 지나면 메모리 공간 없애서 보안 유지.
'PRACTICE > Basic' 카테고리의 다른 글
[Flask] Redirect & Errors 예제 (0) | 2020.09.24 |
---|---|
[Flask] Sessions 예제 (0) | 2020.09.24 |
[Flask] jinja template 활용하여 static 폴더의 자료 가져오기 (0) | 2020.09.24 |
[Flask] request.form 사용하여 key, value 값 전달 (0) | 2020.09.23 |
[Flask] 컬렉션(Dictionary), Jinja template(%) 사용하여 score table 출력 (0) | 2020.09.03 |
댓글