본문으로 바로가기

[HTTP] HTTP 메시지

category Server/HTTP 2022. 2. 4. 01:13
반응형

 

 

 

 

클라이언트와 서버가 정보를 주고받을 때 거의 대부분 HTTP를 사용한다.

 

HTTP는 HTML, TEXT, IMAGE, 음성, 영상, 파일, JSON, XML

모든 형태의 데이터가 전송이 가능하다.

 

 

데이터를 주고받을때 HTTP 메시지가 사용되는데 이를 분석해보자.

 

 

 

 

 

 

● HTTP 메시지

 

 

출처: 인프런 "모든 개발자를 위한 http 웹 기본지식"

 

HTTP 메시지 구조는 위와 같다.

 

요청 메시지와 응답 메시지의 구조는 같지만 전송 정보의 차이가 있어

이를 설명하고자 한다.

 

 

 


● 시작 라인

 

 

 

 

 ○ 요청 메시지

 

 

요청 메시지의 시작 라인 구조는 아래와 같다.

method request-target HTTP-version CRLF(엔터)

 

 

  - method: HTTP 메서드 (ex.GET: 조회) 

  - request-target: 요청 대상 (/search?q=hello&hl=ko)

  - HTTP Version: HTTP 버전(ex.HTTP/1.1)

 

 

 

요청 메시지의 시작 라인의 예시는 아래와 같다.

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

 

 

 

 

 

 ○ 응답 메시지

 

응답 메시지의 시작 라인 구조는 아래와 같다.

HTTP-version status-code reason-phrase CRLF

 

 

  - HTTP-version: HTTP 버전

  - HTTP 상태 코드: 요청 성공, 실패를 나타냄(200:성공, 400:클라이언트 요청 오류, 500: 서버 내부 오류)

  - reason-phrase: 사람이 이해할 수 있는 짧은 상태 코드 설명 글

 

 

 

응답 메시지의 시작 라인의 예시는 아래와 같다.

HTTP/1.1 200 OK

 

 

 

 


● HTTP 헤더

 

HTTP 헤더는 HTTP 전송에 필요한 모든 부가정보를 나타낸다.

예) 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트(브라우저) 정보,

서버 애플리케이션 정보, 캐시 관리 정보

 

 

 

헤더는 field 이름field 값으로 구성되어 있다.

 

 

ex) 

 

  ○ 요청 메시지

   Host: www.google.com   

 

 

  ○ 응답 메시지

   Content-Type: text/html;charset=UTF-8

   Content-Length: 3423

 

 

 

 

 


● HTTP 메시지 바디

 

 

 

HTTP 메시지 바디는 실제 전송할 데이터를 담는다.

 

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

 

 

 

반응형