∟ Framework/∟ DRF

HTTP(Hyper Text Transfer Protocol)와 URL(Uniform Resource Locator) 구조

최 수빈 2025. 3. 28. 18:48

 

HTTP(Hyper Text Transfer Protocol)

 

웹에서 클라이언트(주로 브라우저)와 서버 간에 데이터를 주고받기 위한 규약(프로토콜)

 

HTTP 메시지는 크게 요청(Request)과 응답(Response)으로 구분됨

 

  • Stateless (무상태성)
    각 요청은 독립적으로 처리되며, 서버는 이전 요청의 상태를 기억하지 않음
  • Connectless (비연결성)
    요청 후 응답을 보내면 연결이 끊기며, 서버 자원을 효율적으로 사용할 수 있음
    → HTTP/1.1부터는 연결 재사용이 가능해짐 (Keep-Alive 지원)

→ 단순하면서도 확장성이 뛰어난 구조

 

 

공통 구조

Start Line         ← 요청 또는 응답의 상태를 정의
Headers            ← 요청/응답에 대한 부가 정보
(빈 줄)             ← 헤더와 바디를 구분하는 역할 (메타 정보의 끝을 알림)
Body               ← 요청 또는 응답의 실제 데이터

 

요청(Request) 메시지

Start Line

Method URI HTTP - Version 형태

예: GET /index.html HTTP/1.1

Headers

요청과 관련된 메타 정보

예: Content-Type, User-Agent

Body

주로 POST, PUT 요청 시 데이터 전송에 사용

 

응답(Response) 메시지

Start Line

HTTP-Version Status-Code Reason-Phrase

예: HTTP/1.1 200 OK

Headers

응답에 대한 메타 정보

예: Content-Type, Content-Length

BODY

클라이언트에 전달할 실제 콘텐츠

예: HTML문서, JSON 등

 

 

HTTP Request Methods

 

요청이 자원에 대해 어떤 행위(동작)를 하고 싶은지 나타냄

 

GET 자원 조회
POST 자원 생성
PUT 자원 전체 수정
PATCH 자원 부분 수정
DELETE 자원 삭제

 

MDN 공식 문서 - HTTP Methods

 

HTTP 요청 메서드 - HTTP | MDN

HTTP는 요청 메서드를 정의하여, 주어진 리소스에 수행하길 원하는 행동을 나타냅니다. 간혹 요청 메서드를 "HTTP 동사"라고 부르기도 합니다. 각각의 메서드는 서로 다른 의미를 구현하지만, 일부

developer.mozilla.org

 

 

HTTP 상태 코드 (Status Code)

 

서버가 클라이언트 요청에 대해 어떻게 응답했는지를 나타내는 3자리 숫자 코드

1XX 정보 전달
2XX 성공
3XX 리다이렉션
4XX 클라이언트 오류
5XX 서버 오류

 

 MDN 공식 문서 - HTTP Status

 

HTTP 상태 코드 - HTTP | MDN

HTTP 응답 상태 코드는 특정 HTTP 요청이 성공적으로 완료되었는지 알려줍니다. 응답은 5개의 그룹으로 나누어집니다: 정보를 제공하는 응답, 성공적인 응답, 리다이렉트, 클라이언트 에러, 그리고

developer.mozilla.org

HTTP Cats

 

HTTP Cats

API for HTTP Cats

http.cat

 

 

 

URL과 URI

 

웹 상의 자원(문서, 이미지 등)을 식별하고 위치를 지정하기 위한 체계

 

URI (Uniform Resource Identifier)

인터넷 자원을 식별하는 문자열 규약

통합 자원 식별자

 

두 가지 하위 개념 포함

  • URL(Uniform Resource Locator): 자원의 위치를 나타냄
  • URN(Uniform Resource Name): 자원의 이름을 고유하게 지정

실무에서는 보통 URN을 사용하는 비중이 낮기때문에 URL = URI로 사용됨

*resource(자원)

요청을 하는 대상

예: 문서, 사진, 영상 등

 

예시: https://www.example.com:443/articles?id=123#section2

Scheme(Protocol) (https) 사용 프로토콜 (http, https 등)
Host(Domain name) (www.example.com) 요청 대상 서버의 주소
Port (:443) 서버가 사용하는 포트 (생략 가능)
Path (/articles) 서버 내 리소스의 경로
Query (?id=123) 추가 파라미터 (key=value 형식), &로 구분되는 데이터
Fragment (#section2) 자원 내 특정 위치 (북마크, HTML 앵커 등)

*Path

웹 초기에는 실제 물리적인 위치를 나타냈으나 현재는 추상화된 형태를 표현함

 

 

 

'∟ Framework > ∟ DRF' 카테고리의 다른 글

DRF Single Model CRUD API 구현  (0) 2025.03.29
Django REST Framework(DRF) API 구현  (0) 2025.03.29
JSON Response와 Serialization  (0) 2025.03.29
RESTful API와 JSON  (1) 2025.03.28
DRF(Django REST Framework)  (1) 2025.03.25