본문 바로가기

프로그래밍/HTTP

[HTTP 완벽 가이드] HTTP 메시지

메시지의 흐름

HTTP 메시지는 HTTP 어플리케이션 간에 주고 받은 데이터의 블록들이다.

메시지가 서버로 이동하는 것을 인바운드라고 하고 서버에서 처리가 끝난 후 아웃바운드로 다시 클라이언트로 복귀한다.

 

모든 메시지는 다운스트림으로 흐른다. 메신지의 발송자는 수신자의 업스트림이 된다.

 

 

메시지의 구성

메시지는 시작줄, 헤더, 본문 으로 구성

헤더와 본문 사이는 줄바꿈(CRLF)으로 구분한다.

 

위 응답 메시지를 보면

시작줄에서 HTTP 버전을 표기하고 상태값과 메시지 OK를 표시

헤더에 본문에 있는 내용의 타입과 길이를 알려주고

본문 내용이 나온다.

 

 

메시지의 문법

요청 메시지 형식

 

<HTTP 메서드> <요청 URL> <HTTP 버전>

<헤더>

<엔티티 본문>

 

응답 메시지 형식

 

<HTTP 버전> <상태 코드> <사유 구절>

<헤더>

<엔터티 본문>

 

HTTP 메서드

GET, POST, PUT, HEAD 등등

 

요청 URL 

완전한 URL 또는 경로

 

HTTP 버전

HTTP 버전, HTTP ./<메이저>.<마이너> 로 구성

 

상태 코드

요청 결과를 알 수 있는 3자리 숫자

 

사유 구절

상태를 사람이 이해 할 수 있게 설명한 짧은 메시지

 

헤더

optional한 정보, 메타 정보

 

본문

임의의 바이너리 블록으로 많은 양의 데이터를 넣을 수 있는 공간

본문은 없을 수 도 있는데 이때도 헤더가 끝났음을 알리는 CRLF 문자는 꼭 있어야 한다.

 

 

시작줄

요청 메시지의 시작줄

요청 메시지에서 어떤 걸 원하는지 나타낸다. HTTP 메서드 종류와 요청할 URL 주소 그리고 버전을 적는다.

 

응답 메시지의 시작줄

응답 메시지에서는 HTTP 버전과 요청에대한 결과를 나타내는 상태 코드와 응답 메시지를 적는다.

 

HTTP 메서드

 

GET - 오직 데이터를 받기만 한다.

HEAD - 응답 본문을 포함하지 않는다.

POST - 특정 리소스에 엔티티를 보낼때 쓰인다.

PUT - 서버가 갖고있는 리소스를 내가 보낸것으로 대체하라

DELETE - 특정 리소스를 삭제한다.

PATCH - 리소스의 부분만 수정하는데 사용

OPTIONS  - 리소스의 통신을 설정하는데 사용

 

상태 코드

 

100번대 : 정보성 상태 코드

200번대 : 성공 상태 코드

300번대 : 리다이렉트 상태 코드

400번대 : 클라이언트 에러

500번대 : 서버 에러

 

헤더

 

요청 헤더 필드 

List of HTTP header fields - Wikipedia

 

List of HTTP header fields - Wikipedia

From Wikipedia, the free encyclopedia Jump to navigation Jump to search Wikipedia list article This article needs attention from an expert in Computing. The specific problem is: See talk page. WikiProject Computing may be able to help recruit an expert. (S

en.wikipedia.org

 

응답 헤더 필드

List of HTTP header fields - Wikipedia

 

List of HTTP header fields - Wikipedia

From Wikipedia, the free encyclopedia Jump to navigation Jump to search Wikipedia list article This article needs attention from an expert in Computing. The specific problem is: See talk page. WikiProject Computing may be able to help recruit an expert. (S

en.wikipedia.org