📘 DRF 


HTTP

  • Hyper Text Transfer Protocol
  • ⇒ Web에서 이루어지는 **데이터 교환의 기초(**약속)

 

 요청(Request)
  • 클라이언트 → 서버로 전송되는 메시지
응답(Response)
  • 서버 → 클라이언트로 전송되는 메시지
특성
  • Stateless (무상태)
    • 모든 응답과 요청은 독립적이에요
    • 서버가 클라이언트의 상태를 보존하지 않아요
  • Connectless (비연결성)
    • 연결을 유지하지 않으므로 서버 자원을 효율적으로 사용 가능해요
    • 이후 HTTP1.1이 등장하면서 개선되었어요
    • 요청받고 응답을 주고 나면 연결을 종료해요

⇒ 단순하며 확장성이 용이한 구조예요


HTTP Message

요청(Request)

  • 클라이언트가 서버로 전달해서 서버의 어떤 행동(action)이 일어나게 하는 것을 의미해요

응답(Response)

  • 요청에 대한 서버의 답변을 의미해요

Http Message의 구조

  • 요청과 응답은 구조가 비슷해요
    • 시작(Start Line) - 실행되어야 할 요청, 요청에 대한 성공 또는 실패
    • HTTP Header - 요청에 대한 설명, 본문에 대한 설명
    • 빈 줄(Blank Line) - 메타 정보의 끝을 알림
    • HTTP Body - 요청과 관련된 내용, 응답과 관련된 문서

<- 요청 / 응답 ->

요청(Request) 응답(Response)
Start Line Method, Traget, HTTP Version Start Line HTTP Version, Status Code, Status Message
Headers 요청에 필요한 여러가지 메타 정보 Headers 응답에 대한 여러가지 메타 정보
Body 요청에 필요한 여러가지 데이터 Body 요청을 처리한 여러가지 데이터

 


HTTP Status Code

MDN 공식 문서 🔗 링크

    • HTTP 요청에 대해 성공 여부를 나타내는 코드값이에요
    • 크게 5개의 그룹으로 나누어져요 
1XX : Informational Response

→ 정보 응답

요청을 수신했고, 처리가 진행 중

 

2XX : Successful Response
Status Code Number Status Code Name 설명
200 OK 성공
- 에러없이 요청이 성공.
201 Created 요청이 성공했고 새로운 데이터가 만들어짐.
202 Accepted 요청은 정상적이나 아직 처리가 완료되지 않음.
204 No Content 요청은 성공적으로 처리했으나 전송할 데이터(Response Body)가 없음.

 

3XX : Redirection Message

→ 리다이렉션

요청이 완료되기 위해 클라이언트가 추가 작업을 수행해야 함

 

4XX : Client Error Response
Status Code Number Status Code Name 설명
400  Bad Request · 클라이언트의 요청이 잘못되었음.
· 서버는 해당 요청을 처리하지 않음.
401  Unauthorized 클라이언트가 인증이 되지 않았거나 인증정보가 유효하지 않음.
403  Forbidden · 서버에서 요청을 이해했으나 금지된 요청.
· 요청에 대한 자원이 있으나 수행할 권한이 없음.
404  Not Found 요청한 자원을 찾을 수 없음.

 

5XX : Server Error Response
Status Code Number Status Code Name 설명
500  Internal Server Error · 요청에 대해 서버가 수행하지 못하는 상황.
· 서버가 동작하지 않는다는 포괄적인 의미가 내포됨.
503  Service Unavailable · 서버가 요청을 처리할 준비가 되지 않았음.
· 서버가 다운되었거나 일시적으로 중단된 상태.

URL

웹에서의 자원의 식별

우리가 어떠한 요청을 하는 대상을 자원(Resource)이라고 해요
→ 문서, 사진, 영상 등이 있어요

이러한 자원을 식별하기 위해 URI(Uniform Resource Identifier)를 사용해요

 

URI (Uniform Resource Identifier)

  • 합 자원 식별자이에요
  • 인터넷의 자원을 식별할 수 있는 유일한 문자열이에요
  • 하위 개념 - URN, URL

⇒ 일반적으로 URN을 사용하는 비중이 낮기 때문에 URI와 URL을 같은 의미로 사용하기도 해요!

 

URL(Uniform Resource Locator)
  • 통합 자원 위치(Location)를 의미해요
  • 웹상에 자원이 어디 있는지 나타내기 위한 문자열이에요
    • 어디에서 어떻게 리소스를 가져와야 하는지 나타내는 문자열이에요
  • 흔히 말하는 웹 주소, 링크

 

URN(Uniform Resource Name)
  • 통합 자원 이름(Name)을 의미해요
  • 위치에 독립적인 자원을 위한 유일한 이름 역할을 해요
  • 리소스를 특정하는 이름입이에요
    • ISBN(국제표준도서번호)

 

URI의 구조

https://www.aidenlim.dev:80/path/to/resource/?key=value#docs
형태 역할 설명
https:// Scheme(Protocol)
  • 브라우저가 사용하는 프로토콜이에요
  • http, https, ftp, file, …
www.aidenlim.dev Host(Domain name)
  • 요청을 처리하는 웹 서버예요
  • IP 주소를 바로 사용할 수 있지만 도메인 이름을 받아서 사용하는 것이 일반적이에요
:80 Port
  • 리소스에 접근할 때 사용되는 일종의 문(게이트)이에요
  • HTTP: 80 / HTTPS: 443이 표준 포트에요
/path/to/resource/ Path
  • 웹 서버에서의 리소스 경로예요
  • 웹 초기에는 실제 물리적인 위치를 나타냈으나 현재는 추상화된 형태를 표현합니다.
?key=value Query(Identifier)
  • 웹 서버에 제공하는 추가적인 변수입니다.
  • &로 구분되는 Key=Value 형태의 데이터입니다.
#docs Fragment(Anchor)
  • 해당 자원 안에서의 특정 위치 (북마크)를 나타냅니다.
  • HTML 문서의 특정 부분을 보여주기 위한 방법입니다.

 

'공부 > DRF 공부' 카테고리의 다른 글

[DRF] DRF Single Model CRUD  (0) 2025.01.30
[DRF] Django REST Framework 시작하기, Postman  (0) 2025.01.28
[DRF] Response와 Serializer  (0) 2025.01.28
[DRF] RESTful API와 JSON  (0) 2025.01.23
[DRF] DRF INTRO  (0) 2025.01.23

+ Recent posts