Django : ORM with View

2024. 3. 31. 16:27Web, Django, DB

  • HTTP

네트워크 상에서 데이터를 주고 받기 위한 약속

 

  • HTTP request methods

데이터(리소스)에 어떤 요청(행동)을 원하는지를 나타내는 것

⇒ GET & POST

 

  • ‘ GET ‘ Method

특정 리소스를 조회하는 요청

→ 데이터를 전달할 때 URL에서 Query String 형식으로 보내진다.

= url 에 데이터가 담겨서 간다.

 

  • ‘ POST ‘ Method

특정 리소스에 변경(생성, 수정, 삭제)을 요구하는 요청

→ 데이터는 전달할 때 HTTP Body에 담겨 보내진다.

⇒ DB를 변경하는 요청이기에 특별하게 다른 방법으로 받는다.

 

  • HTTP response status code

특정 HTTP 요청이 성공적으로 완료되었는지를 3자리 숫자로 표현하기로 약속한 것

 

  • 403 Forbidden

서버에 요청이 전달되었지만, 권한 때문에 거절되었다는 것을 의미한다.

 

  • CSRF (= Cross-Site-Request-Forgery)

“사이트 간 요청 위조”

→ 사용자가 자신의 의지와 무관하게 공격자가 의도한 행동을 하여 특정 웹 페이지를 보안에 취약하게 하거나 수정, 삭제 등의 작업을 하게 만드는 공격법

CSRF 토큰을 통해 이를 예방할 수 있다.

사용자가 요청 시 CSRF 토큰을 서버에 같이 보내게 만듦으로써 서버가 DB에 데이터를 생성하여 영향을 주는 요청에 대해 Django가 직접 제공한 페이지에서 요청을 보낸 것인지를 확인할 수 있고 겉모습이 똑같은 위조 사이트나 정상적인지 않은 요청에 대해 방어할 수 있다.

 

POST는 단순 조회를 위한 GET과 달리 특정 리소스에 변경(생성, 수정, 삭제)을 요구하기 때문에 반드시 인증 수단이 필요하다.

즉, 데이터베이스에 대한 변경과 조작을 가하는 요청이기에 토큰을 사용하여 최소한의 신원 확인을 하는 것이다.

POST 요청을 보낼 때 CSRF 토큰을 꼭 같이 보낸다 !!!

 

  • redirect( )

클라이언트가 인자에 작성된 주소로 다시 요청을 보내도록 하는 함수

 

  • 캐시 (Cache)

데이터나 정보를 임시로 저장해두는 메모리나 디스크 공간

이전에 접근한 데이터를 빠르게 검색하고 접근할 수 있도록 한다.

'Web, Django, DB' 카테고리의 다른 글

Django : Static  (0) 2024.04.01
Django : Form  (0) 2024.04.01
Django : ORM  (0) 2024.03.29
Django : Model  (0) 2024.03.20
Django : Templates & URLs  (1) 2024.03.14