Http 는 요청 메서드를 정의하여 , 주어진 리소스에 수행하길 원하는 행동을 나타냅니다.
간혹 요청 메소드를 "HTTP 동사" 라고 부르기도 합니다.
각각의 메소드는 서로 다른 의미를 구현하지만 , 일불 기능은 메소드 집합간에 서로 공유하기도 합니다.
GET / index.html / HTTP/1.1 요청 URL 정보 ( method / URI HTTP버전)
user-agent MSIE 6.0; Window NT 5.0 사용자 웹 브라우저 종류
accept: test/html; */* 요청 데이터 타입 ( 응답의 Content-type 과 유사)
cookie:name=value 쿠키 (인증 정보 )
refere : http://abc.com 경유지 URL
host : www.abc.com 요청 도메인
HTTP/1.1 200 OK 프로토콜 버전 및 응답코드
Server:Apache 웹 서버 정보
Content-type : text/html MIME 타입
Content-length : 1593 HTTP BODY 사이즈
<html>...</html> HTTP BODY 컨텐츠
http 메소드는 get , post , put , delete 이렇게 4가지를 가장 많이 사용합니다.
GET : 요청받는 URI 의 정보를 검색하여 응답한다.
POST : 요청된 자원을 생성한다. 새로 작성된 리소스인 경우 HTTP 헤더 항목 Location : URI 주소를 포함하여 응답
PUT : 요청된 자원을 수정(UPDATE) 합니다. 내용 갱신을 위주로 Location : URI 을 보내지 않아도 된다.
클라이언트 측은 요청된 URI를 그대로 사용하는 것을 간주
DELETE : 요청된 자원을 삭제할 것을 요청함 . ( 안정성 문제로 대부분의 서버에서 비활성 )
post 는 보통 insert 의 개념으로 사용이 되고
put 은 update 개념으로 생각하면 이해하기가 쉽습니다.
하지만 put 없이 post 로만 사용하기도 합니다.
django 에서는 각각 post , get 같이 http method 에 해당하는 method 이름 구현할 경우 , 해당 리퀘스트 메소드에 대해 구현체가 실행되게 되어있습니다.
따라서 def get , def post , def delete 등등 메소드를 만들고 로직을 구현하면 됩니다.