메시지의 흐름
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
'프로그래밍 > HTTP' 카테고리의 다른 글
[HTTP 완벽 가이드] 프록시 (0) | 2021.08.05 |
---|---|
[HTTP 완벽 가이드] 웹 서버 (0) | 2021.08.05 |
[HTTP 완벽 가이드] HTTP 커넥션 관리 (0) | 2021.08.04 |
[HTTP 완벽 가이드] URL 과 리소스 (0) | 2021.08.04 |
[HTTP 완벽 가이드] HTTP 개관 (0) | 2021.08.04 |