정의
인터넷에서 데이터를 주고 받을 수 있는 규칙
----------------------여기까지만 이해하면 될 것 같다.---------------------------
설명
- 요청 : 데이터 주세요
client -> server : request
- 응답 : 자 데이터
server -> client : response
이러한 응답과 요청을 일정한 규칙으로 통신하는데 이 규칙을 http라고 한다.
일정한 규칙은 대략 이런 모양이다. 대충 모양만 봐두자.
각각 일정한 규칙이 있는, 왼쪽은 주문서, 오른쪽은 영수증정도로 이해하면 된다.
-----------조금 더 알고싶으면 여기까지만 이해하면 될 것 같다.--------------------
상세
좀 더 상세하게 들어가보자.
다음 그림은 요청과 응답의 메세지들이다.
-
요청
-
응답
위 메세지들을 정리를 해보면 아래 그림과 같다.
- 요청/상태라인
- General Header- 클라이언트, 서버 또는 HTTP와 관계된 정보
- Request Header- 요청 형식과 서버의 매개 변수
- Response Header- 응답을 보내는 서버에 대한 정보
- Entity header- 메시지 바디의 컨텐츠를 나타내는 HTTP 헤더
- CRLF- 공백 (공백을 뭐 어려운 말로 적어놨다.)
- Body- 내용
위 그림중 요청 메세지를 자세히보면 아래 그림과 같다.
요청라인
- 요청 URL : 어디에 요청하는지이다. (또는 뭘 요청하는지)
- 메서드: 요청하는 행동이다.(GET: 갖고 와, POST: 올려, PUT: 바꿔, DELETE: 지워 등)
- HTTP 버전
으로 구성되어 있다.
상태라인
으로 구성되어있다.
-
General Header (일반헤더)- 클라이언트, 서버 또는 HTTP와 관계된 정보
- Cache-Control
- Connection
- Date
- Pragma
- Trailer
- Transfer-Encoding
- Upgrade
- Via
- Warning
-
Request Header (요청헤더)- 요청 형식과 서버의 매개 변수
- Accept
- Accept-Charset
- Accept-Encoding
- Accept-Language
- Authorization
- Expect
- From
- Host
- If-Match
- If-Modified-Since
- If-Range
- If-Unmodified-Since
- Max-Forwards
- Proxy-Authorization
- Range
- Referer
- TE
- User-Agent
-
Response Header (응답헤더)- 응답을 보내는 서버에 대한 정보
- Accept-Ranges
- Age
- ETag
- Location
- Proxy-Authenticate
- Retry-After
- Server
- Vary
- WWW-Authenticate
-
Entity header (본문헤더)- 메시지 바디의 컨텐츠를 나타내는 HTTP 헤더
- Allow
- Content-Encoding
- Content-Language
- Content-Location
- Content-MD5
- Content-Range
- Content-Type
- Expires
- Last-Modified
- 기타확장헤더
로 구성되어 있다.
CRLF
- 헤더 다음 공백이 들어간 뒤 Body가 들어간다.
Body
여기까지 HTTP 메세지의 구성요소이다.
참조