본문 바로가기

개발

[웹기초] HTTP 메시지 정의, 흐름, 구성

정의

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) 본문 : 데이터를 담고있을 수 도있고 없을 수 도 있다.

 

 

잘정리된 문서

 - goddaehee.tistory.com/169