[HTTP완벽가이드] 03. HTTP 메시지
03 HTTP 메시지
요약
- HTTP 메시지에는 요청, 응답 메시지가 있다.
- HTTP 메시지는 시작줄, 헤더, 본문(선택)으로 구성되어 있다.
HTTP 메시지의 구조
요청 메시지 | 응답 메시지 | |
---|---|---|
시작줄 | <메서드> <요청URL> <버전> |
<버전> <상태코드> <사유 구절> |
헤더 | <헤더> |
<헤더> |
본문 | <엔티티 본문> |
<엔티티 본문> |
- 각 줄은 개행문자(
CRLF
)로 끝나야 한다. - 헤더는 항상 빈 줄이 맨 마지막에 온다.
- 본문은 필요할 때만 존재한다.
메서드
메서드명 | 기능 | 본문 |
---|---|---|
GET | 리소스 가져올 때 | 없음 |
HEAD | 헤더만 확인할 때 | 없음 |
PUT | 데이터를 새로 저장하거나 업데이트할 때 | 있음 |
POST | 폼 데이터를 전송할 때 | 있음 |
TRACE | 클라이언트에서 서버로 요청메시지를 보낼 때, 프록시 등의 중간매체를 거치면서 요청 메시지가 달라질 수 있음. 실제로 받는 요청 메시지를 확인하고 싶을 때. 단, 중간매체가 메서드에 따라 동작을 달리하는 경우, 확인하기 힘듦 | 없음 |
OPTIONS | 해당 URL 포맷에 대해 지원하는 메서드의 종류가 알고 싶을 때 | 없음 |
DELETE | 데이터를 지워달라고 요청할 때, 지움을 보장하지 않음 | 없음 |
상태코드
코드 | 분류 |
---|---|
1xx | 정보 |
2xx | 성공 |
3xx | 리다이렉트 |
4xx | 클라이언트 에러 |
5xx | 서버 에러 |
헤더
- 헤더가 가진 의미에 맞게 요청/응답 메시지에 넣어 사용해야 한다.
분류 | 이름 | 설명 |
---|---|---|
요청헤더 | Host | 요청의 대상이 되는 서버의 호스트명과 포트 |
Referer | 요청을 한 페이지의 URL | |
Accept | 클라이언트가 처리할 수 있는 미디어 종류 | |
Cookie | 쿠키저장 | |
If-Modified-Since | 주어진 날짜 이후에 리소스가 변경되었는 지 확인. 클라이언트 캐시에 활용 예) 응답이 304(Not Modified)라면 클라이언트에 저장된 값을 사용한다 | |
응답헤더 | Server | 서버의 이름과 버전 |
Allow | URL 포맷에 대해 허용하는 메서드의 종류 | |
Location | 리소스의 리다이렉트 위치를 알려줄 때 | |
Set-Cookie | 클라이언트에 쿠키 저장 | |
엔티티헤더 | Content-Type | 본문이 어떤 타입인 지 |
Last-Modified | 응답 데이터가 수정된 최근 날짜 |