티스토리 뷰

해당 글은 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의를 수강하고 정리한 게시글입니다.

HTTP 메시지

HTTP 메시지는 서버와 클라이언트 간에 데이터가 교환되는 방식이다.
메시지 타입으로는 요청과 응답이 있고 요청은 클라이언트가 서버로 전달해서 서버의 액션이 일어나게끔 하는 메시지이고 응답은 요청에 대한 서버의 답변이다.

 

HTTP 메시지의 공식 스펙은 위와 같다.

 

이제 예시와 함께 각 부분에 대해 알아보자.

[예시]

HTTP 메시지 구조

HTTP 메시지 구조는 위와 같고 공백 라인은 반드시 존재 해야한다.

 

HTTP 요청 메시지 예시


HTTP 요청 메시지의 예는 위와 같다. (요청 메시지도 body 본문을 가질 수 있다)

 

HTTP 응답 메시지 예시


HTTP 응답 메시지의 예는 위와 같다.

시작 라인(start-line)

요청 메시지

요청 메시지의 시작라인은 HTTP메서드 , 요청대상 , HTTP 버전으로 구성된다.

request-line= method SP(공백) request-target SP HTTP-version CRLF(엔터)

예시 : GET /search?q=hello&hl=ko HTTP/1.1

 

[HTTP 메서드]
서버가 수행해야 할 동작을 지정한다.
예시: GET /search?q=hello&hl=ko HTTP/1.1

메서드 종류 : GET, POST, PUT, DELETE…
GET: 리소스 조회
POST: 요청 내역 처리 (데이터 생성)
PUT: 리소스를 업데이트
DELETE: 지정된 리소스를 삭제

 

[요청 대상]
절대경로(/로 시작하는 경로)와 쿼리로 구성되어있다.
예시: GET /search?q=hello&hl=ko HTTP/1.1

 

[HTTP 버전]
말그대로 HTTP의 버전을 나타낸다.
예시: GET /search?q=hello&hl=ko HTTP/1.1

응답 메시지

응답 메시지의 시작라인은 HTTP 버전, HTTP 상태 코드, 이유 문구로 구성된다.

 

[HTTP 버전]: 말그대로 HTTP의 버전을 나타냄

 

[HTTP 상태 코드] : 요청 성공, 실패를 나타냄

상태 코드 종류 : 200, 400, 500…
200: 성공
400: 클라이언트 요청 오류
500: 서버 내부 오류

 

[이유 문구]: 사람이 이해할 수 있는 짧은 상태 코드 설명 글

 

HTTP 헤더(header-field)

HTTP 전송에 필요한 모든 부가정보를 담고있다.

  • 예) 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트(브라우저) 정보, 서버 애플리케이션 정보, 캐시 관리 정보…

header-field = field-name “:” OWS field-value OWS (OWS:띄어쓰기 허용)
field-name은 대소문자 구분 없음

예시 :

HTTP 헤더 예시

HTTP 메시지 바디(message-body)

실제 전송할 데이터를 담고 있고 HTML 문서, 이미지, 영상등 byte로 표현할 수 있는 모든 데이터가 전송이 가능하다.

예시 :

HTTP 메시지 바디 예시

 

이렇게 오늘은 HTTP 메시지에 대해 알아보았고 다음에는 HTTP API를 한번 구현해보자.

'Computer Science > Computer Network' 카테고리의 다른 글

[Network] 06. HTTP 메서드 활용  (0) 2022.02.24
[Network] 05. HTTP 메서드  (0) 2022.02.23
[Network] 03. HTTP 기본  (0) 2022.02.20
[Network] 02. 인터넷 네트워크  (0) 2022.02.19
[Network] 01. OSI 7계층  (0) 2022.02.18
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/03   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함