정의
HTTP 어플리케이션 간에 주고받는 데이터 블록.
흐름
사용자 에이전트가 서버에 데이터 요청시. 인바운드 아웃바운드의 in, out은 "서버" 기준임.
클라이언트 -> 서버 요청(인바운드)
서버 -> 클라이언트 응답(아웃바운드)
구성
시작줄 / 헤더 / 본문 이렇게 세부분으로 나뉨.
1) 시작줄 : 어떤 메시지인지에 대해 text로 서술되어있음.
- 요청 : 요청에서 시작줄은 무엇을 해야하는지와 어떤 HTTP 버전으로 말하고 있는지를 알려준다.
무엇을 해야하는지는 메서드로 말을 하는데 각 메서드 마다 무엇을 하는지는 아래와같이 정해져있다.
메서드 | 설명 | 메시지 본문이 있는가? |
GET | 서버에서 어떤 리소스를 가져온다. | x |
HEAD | 서버에서 어떤 리소스에 대해 헤더만 가져온다. | x |
POST | 서버가 처리해야할 데이터를 보낸다. | o |
PUT | 서버에 요청 메시지의 본문을 저장한다. | o |
TRACE | 메시지가 프록시를 거쳐 서버에 도달하는 과정을 추적한다. | x |
OPTIONS | 서버가 어떤 메서드를 수행할 수 있는지 확인한다. | x |
DELETE | 리소스를 삭제한다. | x |
- 응답 : 응답에서 시작줄은 수행 결과에 대한 상태 정보와 결과 데이터를 클라이언트에게 알려준다.
주로 쓰이는 상태정보는 아래와 같다.
전체범위 | 정의된 범위 | 분류 |
100-199 | 100-101 | 정보 |
200-299 | 200-206 | 성공 |
300-399 | 300-305 | 리다이렉션 |
400-499 | 400-415 | 클라이언트 에러 |
500-599 | 500-505 | 서버 에러 |
2) 헤더 : 속성을 나타낸다.
- 일반 헤더 : 클라이언트와 서버 양쪽 모두 사용하는 일반적인 헤더.
Date: Tue, 3 Oct 1974 02:16:00 GMT
- 요청 헤더 : 요청 메시지를 위한 헤더. 서버에게 클라이언트가 받고자하는 데이터의 타입이 무엇인지와 같은 부가정보 제공.
Accept: */*
- 응답 헤더 : 응답 메시지가 클라이언트에게 정보를 제공하기 위해 갖고 있는 헤더.
Server: Tiki-Hut/1.0 (난 Tiki-Hut 1.0 서버야!)
- 엔터티 헤더 : 엔터티 본문에 들어있는 데이터의 타입이 무엇인지 말해준다.
Content-Type: text/html; charset=iso-latin-1
- 확장 헤더 : 표준명세에 등록되진 않았지만 어플리케이션 개발자들에 의해 임의로 사용하는 헤더
Naver-api-token: #~!@#@!
3) 본문 : 데이터를 담고있을 수 도있고 없을 수 도 있다.
잘정리된 문서
'개발' 카테고리의 다른 글
[Vue.js] vuex 상태관리 사용법 (0) | 2020.11.21 |
---|---|
[웹기초] 프록시를 알아보자 (0) | 2020.09.23 |
VMWare 및 Centos8 ISO 다운로드 (0) | 2020.09.10 |
git 수정후 되돌리기 (commit전, commit 후, push 후) (0) | 2020.03.06 |
Docker를 사용하기 위해 알아야하는 인프라와 네트워크에 관한 기초 지식 (1) | 2018.12.18 |