[Django]HTTP Request / Response message

그냥·2022년 6월 16일
1

django

목록 보기
8/20

HTTP request message 구조

HTTP request는 프론트엔트(클라이언트)에서 백엔드(서버)에 데이터 처리를 시작하게 하기 위해 보내는 메세지이며, 크게 세 부분으로 나뉜다.

  1. Start Line: 요청의 첫 번째 줄에 해당한다.
  • HTTP Method: 해당 요청이 의도한 액션을 정의하는 부분. GET, POST, DELETE가 주로 쓰인다.
  • Request target: 해당 request가 전송되는 목표 url
  • HTTP Version: HTTP의 버전으로 주로 1.1과 2.0이 쓰인다.
GET /login HTTP/1.1
# GET 메소드로 login 이라는 요청 타겟에 HTTP 1.1 버전으로 요청을 보내겠다.

  1. Headers: 요청에 대한 추가 정보(메타 데이터)를 담고있는 부분이다.
  • 구조: { Key : Value } 값으로 되어 있다.
  • Host : 요청을 보내는 목표(타겟)의 주소. 요청을 보내는 웹사이트의 기본 주소가 된다. (ex. www.naver.com)
  • User-Agent : 요청을 보내는 클라이언트의 정보 (ex. chrome, firefox, safari, httpie)
  • Content-Type : 해당 요청이 보내는 메시지 body의 타입 (ex. application/json)
  • Content-Length : body 내용의 길이
  • Aurthorization : 회원의 인증/인가를 처리하기 위해 로그인 토큰을 Authorization에 담는다.
Headers: {
    Host:  
    User-Agent: 
    Content-Type: 
    Content-Length: 
    Authorization: 
}
  1. Body: 요청의 실제 내용
  • 주로 Body를 사용하는 메소드는 POST이다.
  • 로그인 시에 서버에 보낼 요청의 내용
Body: {
    "user_email": "jun.choi@gmail.com"
    "user_password": "wecode"
}


HTTP response message 구조

HTTP response도 크게 세 부분으로 구성되어 있다.

  1. Status Line: 응답의 상태 줄이다. 응답은 요청에 대한 처리상태를 클라이언트에게 알려주면서 내용을 시작한다. Status Line도 세 부분으로 구성된다.
  • HTTP Version: 요청의 HTTP 버전과 동일
  • Status Code: 응답 메세지의 상태코드
  • Status Text: 응답 메세지의 상태를 간략하게 설명해주느 텍스트
HTTP/1.1 404 Not Found
# HTTP 1.1 버전으로 응답하고 있는데, 프론트엔드에서 보낸 요청(ex. 로그인 시도)에 대해서
# 유저의 정보를 찾을 수 없기 때문에(Not Found) 404 상태 메세지를 보낸다.

HTTP/1.1 200 SUCCESS
# HTTP 1.1 버전으로 응답하고 있는데, 프론트엔드에서 보낸 요청에 대해서 성공했기 때문에
# 200 상태 메세지를 보낸다.

  1. Headers: 요청의 헤더와 동일하다. 응답의 추가 정보(메타 데이터)를 담고 있다.
  • 요청말고 응답에서만 사용되는 헤더의 정보들도 있다. (ex. 요청하는 브라우저의 정보가 담긴 User-Agent 대신, Server 헤더가 사용된다)
  1. Body: 요청의 Body와 일반적으로 동일하다.
  • 요청의 메소드에 따라 Body가 항상 존재하지 않듯이 응답도 응답의 형태에 따라 데이터 전송할 필요가 없는 경우가 있다.
  • 가장 많이 사용되는 Body의 데이터 타입은 JSON(JavaScript Object Notation)이다.
Body: {
    "message": "SUCCESS"
    "token": "kldiduajsadm@9df0asmzm" (암호화된 유저의 정보)
}    

0개의 댓글

관련 채용 정보