반응형
HTTP 이란?
HTTP(Hypertext Trasnfer Protocol)은 웹 서버와 웹 클라이언트 사이에서 데이터를 주고받기 위해 사용하는 통신 방식이다.
Hypertext인 HTML,XML 뿐만아니라 이미지, 음성, 동영상, 자바스크립트, PDF, 오피스파일 등 컴퓨터에서 사용하는 데이터는 모두 주고받을 수 있다.
예를들어 https://www.google.com/를 웹브라우저 주소창에 입력하고 Enter를 누르면 웹 클라이언트(브라우저)와 웹 서버 사이에 HTTP연결이 맺어지고 웹 클라이언트는 웹 서버에 Reqeust를 보내게 된다. 웹 서버는 Request에 따라 처리한 뒤 Response를 전달한다.
HTTP의 특징은 stateless 이다. 즉, 웹 클라이언트와 웹 서버의 연결이 지속되지 않고 한번의 요청과 응답으로 종료된다는 의미이다.
이러한 stateless 방식의 장점은 한번에 수 많은 사용자를 안정적으로 처리할 수 있지만 연결이 끊어지면 클라이언트의 이전 상태(로그인 등)의 정보를 알 수 없다는 단점이 있다. 따라서 이러한 단점을 극복하기 위해 쿠키(Cookie)를 사용한다.
HTTP 메시지의 구조
스타트라인(Start Line) => 요청라인 or 상태라인 |
헤더(Header) |
빈줄(Blank Line) |
바디(Body) |
HTTP 처리 방식
HTTP 메소드를 통해 클라이언트가 원하는 처리 방식을 서버에 알려주며 데이터 조작의 기본이 되는 CRUD와 매핑 되는 처리를 함.
*CRUD(Create, Rread, Update, Delete)
HTTP 메소드 종류 (웹 클라이언트 -> 웹 서버)
메소드명 | 의미 | CRUDE와 매핑 |
GET | 데이터(리소스) 취득 요청 | READ |
POST | 데이터(리소스) 생성 요청 | CREATE |
PUT | 데이터(리소스) 변경,수정 요청 | UPDATE |
DELETE | 데이터(리소스) 삭제 요청 | DETLE |
HEAD | 데이터(리소스)의 헤더(메타데이터) 취득 | |
OPTIONS | 데이터(리소스)가 서포트하는 메소드 취득 |
HTTP 상태 코드 (웹 서버 -> 웹 클라이언트)
상태코드 | 상태 텍스트 | 의미 |
2xx | Success(성공) | 클라이언트 요청이 서버에서 성공적으로 처리 |
3xx | Redirection(리다이렉션) | 클라이언트 요청을 마치기 위해 추가적인 동작이 필요(리소스가 이동했을 때) |
4xx | Client Error(클라이언트 에러) | 클라이언트의 요청이 잘못 되었을 경우 |
5xx | Server Error(서버 에러) | 서버 측 사정으로 메시지 처리를 못했을 경우 |
반응형
'Python > Django' 카테고리의 다른 글
[Django] 장고의 작동 구조 & MTV패턴 (0) | 2021.05.23 |
---|---|
[Django] [웹 기초] 웹서버(web server)와 웹앱서버(web application server) (0) | 2020.08.17 |
[Django] [웹 기초] 웹 프로그래밍이란 (0) | 2020.07.25 |
[Django] 간단한 REST API 서버 만들기4 - Class Based View에서 POST, GET, PUT, DELETE 구현 (0) | 2020.02.10 |
[Django] 간단한 REST API 서버 만들기3 - model, serializer 구현 (0) | 2020.02.08 |