📘 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) |
|
www.aidenlim.dev | Host(Domain name) |
|
:80 | Port |
|
/path/to/resource/ | Path |
|
?key=value | Query(Identifier) |
|
#docs | Fragment(Anchor) |
|
'공부 > 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 |