장고에 대한 이해도가 부족하여 책을 구매해서 진행하게 되었습니다.
참고서적은 'Django로 배우는 쉽고 빠른 웹개발 파이썬 프로그래밍' 입니다.
파이썬으로 웹 프로그래밍을 시작하기 전에 웹 프로그래밍의 기본 기술에 대해 이해
할 필요가 있습니다.
웹 프로그램은 기본적으로 클라이언트-서버로 이루어집니다.
간단히 말하면 HTTP(S) 프로토콜로 통신하는, 클라이언트와 서버를 개발하는 것
웹클라이언트와 웹서버를 같이 개발할 수도 있고, 웹 클라이언트 또는 웹 서버 하나만
개발할 수도 있습니다. 보통은 웹 서버를 개발하는 경우가 많아서 파이썬 웹 프로그래
밍이라고 하면 우선적으로 장고와 같은 앱 프레임워크를 사용하여 웹 서버를 개발하는 것을
떠올리게 됩니다.
EX> 네이버 접속(웹 브라우저를 실행)
웹 브라우저 이외에도 웹 서버에 요청을 보내는 웹 클라이언트는 다양하게 만들수 있다
- 웹 브라우저를 사용하여 요청
- 리눅스 curl명령을 사용하여 요청
- Telent을 사용하여 요청
- 직접 만든 클라이언트로 요청
HTTP는 웹 서버와 웹 클라이언트 사이에서 데이터를 주고받기 위해 사용하는 통신방식으로,
TCP/IP 프로토콜 위에서 동작합니다.(웹을 이용하려면 웹 서버와 웹 클아이언트는 각각 TCP/IP
동작에 필수적인 IP 주소를 가져야한다)
HTTP 메시지는 클라이언트에서 서버로 보내는 요청 메시지와 서버에서 클라이언트로 보내는 응답 메시지 2가지가 있다
GET/ book/shakespeare HTTP/1.1
HOST :www.example.com:8800
두번쨰 줄은 헤더로 이름:값 형식으로 표현, HOST 항목은 필수로 표시해야 함
GET http://www.example.com:8080/book/shakespeare HTTP/1.1
HTTP 메소드를 통해서 클라이언트가 원하는 처리 방식을 서버에 알려줍니다.
메소드명 | 의미 | CRUD와 매핑되는 역할 |
---|---|---|
GET | 리소스취득 | Read(조회) |
POST | 리소스생성,리소스 데이터 추가 | Create(생성) |
PUT | 리소스 변경 | Update(변경) |
DELETE | 리소스 삭제 | Delete(삭제) |
HEAD | 리소스의 헤더 취득 | |
OPTIONS | 리소스가 서포트하는 메소드 취득 | |
TRACE | 루프백 시험에 사용 | |
CONNECT | 프록시 동작의 터널 접속으로 변경 |
이 중에서 많이 사용되는 메소드(GET,POST,PUT,DELETE) 4개의 메소드이며
데이터 조작의 기본이 되는 CRUD와 매핑되는 처리를 합니다.
GET 방식은 지정한 URL의 정보를 가져오는 메소드로, 가장 많이 사용됩니다.
웹 브라우저를 이용하여 서버로부터 웹페이지, 이미지, 동영상등을 가져오려고 할 때
수 많은 GET 방식의 요청을 사용하게 됩니다.
POST의 대표적인 기능은 리소스를 생성하는 것으로, 블로그에 글을 등록하는 경우가 이에
해당됩니다.
PUT은 리소스를 변경하는데 사용됩니다. 예를 들어 블로그에서 글을 업로드한 작성자를
변경하거나 글의 내용을 업데이트를 하는 등의 경우가 이에 해당됩니다.
참고) POST와 PUT 용도 구분(URL 결정권)
-> 혼동을 줄수 있으니 리소스 생성은 POST, 리소스의 변경은 PUT으로 사용