13

http와 https란?

1. http vs https HTTP는 Hypertext Transfer Protocol의 약자로 HTML을 전송하기 위한 통신 프로토콜(약속, 형식 정도로 이해)을 의미한다. HTTPS의 마지막 s는 Over Secure Socket Layer의 약자로 기존 http방식에 보안을 강화한 방식이다. 기존 http는 데이터를 전송할 때 암호화를 하지 않기 때문에 보안상 결점이 많아 이를 보완하기 위해 등장한 것이다. 이 https는 ssl 프로토콜 위에서 돌아가는 프로토콜이다. (기존 http프로토콜 + ssl프로토콜). 2. SSL = TSL 같은 말이다. 보통 SSL이라고 많이 표현한다. SSL도 http처럼 프로토콜의 일종이다. 3. https를 통한 서버와 클라이언트의 통신 절차 3-1. hand..

2022.01.20

API 이해하기

1. API란? API는 한마디로 프로그램들이 서로 상호작용할 수 있는 창구이다. 서버와 db의 출입구 역할을 하는 통로라고 생각하면 된다. 2. 어떤식으로 API를 통해 서버와 클라이언트의 소통이 이뤄지는지 예를 통해 살펴보자. @app.route('/api/login', methods=['POST']) def create_token(): # 로그인 할때 input창에 입력한 id, pw를 가져와서 db에서 확인. id_receive = request.form['id_give'] pw_receive = request.form['pw_give'] result = db.banksalada.find_one({'id1': id_receive}) # 만약에 db에 실제로 id와 pw가 맞다면 if문 실행.(해싱..

2022.01.16

JWT(JSON Web Token) 이해하기

JWT는 JSON 형식의 토큰을 의미한다. 로그인하는 경우를 예로 들면서 어떤식으로 쓰이는지 알아보자. 1. 서버에서 토큰을 만드는데 쓰일 시크릿 키를 생성한다. (반드시 서버만 가지고 있을 필요는 없는 것 같다. 하지만 보안상 그게 적합하지 않을까 싶다.) 2. 사용자가 로그인을 할 때 입력한 id와 pw가 실제 DB에 있는 회원정보인지 확인한다. 3. 실제로 있는 회원이라면 서버가 토큰을 만든다. 4. 서버가 토큰을 사용자에게 지급한다. 5. 지급받은 토큰을 사용자는 가지고 있는다. 6. 사용자가 인증이 필요한 접근요청을 할 때 서버가 토큰을 요구한다. 7. 사용자가 토큰을 준다. 8. 서버는 그 토큰이 유효한지 확인한다. 9. 유효하다면 별도의 중복 로그인 절차 없이 바로 접근을 허가한다. 10. ..

2022.01.16