본 포스팅은 Back-end 개발 입문과 홈페이지 제작 기술 기반 마련을 위한 공부자료입니다.
Django 공식 문서와 MDN web docs를 참고자료로 작성됐습니다.
https://www.djangoproject.com/
https://developer.mozilla.org/ko/docs/Learn/Server-side/Django
GET
: 특정 리소스를 얻는다. e.g. 제품의 대한 정보 또는 제품 목록을 제공하는 HTML 파일 POST
: 새로운 리소스를 만든다. e.g. 새로운 기사 추가, DB의 새로운 연결 추가 HEAD
: 특정 리소스의 내용 부분을 제외한 메타 데이터 정보를 가져온다. e.g. 리소스가 변경된 경우 GET
요청을 통해 리소스 다운로드 PUT
: 기존에 있던 리소스 업데이트( 없다면 새로 생성 ) DELETE
: 특정 리소스를 삭제 TRACE
, OPTIONS
, CONNECT
, PATCH
: 고급작업을 위함. 자세한 것은 구글링을..!GET
Requests이름/값 쌍을 끝에 추가해 서버에 보낸 URL 데이터를 인코딩한다.
e.g. http://mysite.com?name=Fred&age=11
이 있다고 가정한다.
?
는 URL과 URL 매개변수를 분리한다.=
은 매개변수의 이름과 값을 분리한다.&
는 이름/값 쌍을 분리한다.GET
Request는 서버에 데이터를 업데이트하는 요청에 사용하지 않는다.POST
Cookie
HTTP Response status code 포함: 요청 성공 여부
e.g. 200 0k
, 404 Not Found
, 403 Forbidden
이 과정에서 브라우저는 다른 리소스와 링크를 찾을 수도 있다.
e.g. HTML page
, 별도의 HTTP Request를 통한 파일 다운로드
GET
RequestGET https://developer.mozilla.org/en-US/search?q=client+server+overview&topic=apps&topic=html&topic=css&topic=js&topic=api&topic=webdev HTTP/1.1
Host: developer.mozilla.org
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Referer: https://developer.mozilla.org/en-US/
Accept-Encoding: gzip, deflate, sdch, br
Accept-Charset: ISO-8859-1,UTF-8;q=0.7,*;q=0.7
Accept-Language: en-US,en;q=0.8,es;q=0.6
Cookie: sessionid=6ynxs23n521lu21b1t136rhbv7ezngie; csrftoken=zIPUJsAZv6pcgCBJSCj1zU6pQZbfMUAT; dwf_section_edit=False; dwf_sg_task_completion=False; _gat=1; _ga=GA1.2.1688886003.1471911953; ffo=true
GET
/en-US/search
q=client+server+overview&topic=apps&topic=html&topic=css&topic=js&topic=api&topic=webdev
developer.mozilla.org
HTTP/1.1
sessionid=6ynxs23n521lu21b1t136rhbv7ezngie; ...
GET
ResponseHTTP/1.1 200 OK
Server: Apache
X-Backend-Server: developer1.webapp.scl3.mozilla.com
Vary: Accept,Cookie, Accept-Encoding
**Content-Type**: text/html; charset=utf-8
Date: Wed, 07 Sep 2016 00:11:31 GMT
Keep-Alive: timeout=5, max=999
Connection: Keep-Alive
**X-Frame-Options**: DENY
Allow: GET
X-Cache-Info: caching
**Content-Length**: 41823
<!DOCTYPE html>
<html lang="en-US" dir="ltr" class="redesign no-js" data-ffo-opensanslight=false data-ffo-opensans=false >
<head prefix="og: http://ogp.me/ns#">
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<script>(function(d) { d.className = d.className.replace(/\bno-js/, ''); })(document.documentElement);</script>
...
200 OK
text/html
charset=utf-8
41823
<iframe>
삽입을 허용하지 않음 DENY
POST
RequestPOST
는 사용자의 정보를 포함한 폼을 작성해 서버에 저장하기 위한 요청을 전송할 때 만들어진다.POST https://developer.mozilla.org/en-US/profiles/hamishwillee/edit HTTP/1.1
Host: developer.mozilla.org
Connection: keep-alive
Content-Length: 432
Pragma: no-cache
Cache-Control: no-cache
Origin: https://developer.mozilla.org
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Referer: https://developer.mozilla.org/en-US/profiles/hamishwillee/edit
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.8,es;q=0.6
Cookie: sessionid=6ynxs23n521lu21b1t136rhbv7ezngie; _gat=1; csrftoken=zIPUJsAZv6pcgCBJSCj1zU6pQZbfMUAT; dwf_section_edit=False; dwf_sg_task_completion=False; _ga=GA1.2.1688886003.1471911953; ffo=true
csrfmiddlewaretoken=zIPUJsAZv6pcgCBJSCj1zU6pQZbfMUAT&user-username=hamishwillee&**user-fullname=Hamish+Willee**&user-title=&user-organization=&user-location=Australia&user-locale=en-US&user-timezone=Australia%2FMelbourne&user-irc_nickname=&user-interests=&user-expertise=&user-twitter_url=&user-stackoverflow_url=&user-linkedin_url=&user-mozillians_url=&user-facebook_url=
GET
Request와 거의 비슷해 보이지만, 첫 번째 줄의 POST
키워드를 통해 이 요청이 POST
Request임을 보여주고 있다user-fullname=Hamish+Willee
POST
ResponseHTTP/1.1 **302 FOUND**
Server: Apache
X-Backend-Server: developer3.webapp.scl3.mozilla.com
Vary: Cookie
Vary: Accept-Encoding
Content-Type: text/html; charset=utf-8
Date: Wed, 07 Sep 2016 00:38:13 GMT
**Location: https://developer.mozilla.org/en-US/profiles/hamishwillee**
Keep-Alive: timeout=5, max=1000
Connection: Keep-Alive
X-Frame-Options: DENY
X-Cache-Info: not cacheable; request wasn't a GET or HEAD
Content-Length: 0
POST
성공 302 FOUND
Location
GET
Response와 유사