상세 컨텐츠

본문 제목

[네트워크] HTTP 메시지 구조

카테고리 없음

by 정성윤TV 2025. 3. 29. 16:56

본문

1. HTTP 메시지 구조

HTTP 통신은 클라이언트와 서버가 주고받는 메시지로 이루어지며,
이 메시지는 크게  요청(Request) 과 응답(Response) 두 가지로 나뉜다.

HTTP 메시지에 모든 것을 전송 할 수 있다!!

1-1. 요청 메시지 (Request Message)

클라이언트가 서버에 무언가를 요청할 때 보내는 메시지이다.

구성 구조

① 요청라인 (Request Line)
② 헤더 (Header)
③ 빈 줄 (CRLF)
④ 바디 (Body)
 

 

1) 시작라인 (start-Line)

메서드 클라이언트의 요청 방식 GET, POST, PUT, DELETE 등
요청 URI 요청 리소스의 경로 /index.html
HTTP 버전 사용 중인 HTTP 버전 HTTP/1.1

ex) GET /index.html HTTP/1.1


2) 헤더 (Header)

요청에 대한 부가적인 정보들이 포함된다.

예: 브라우저 종류, 언어 설정, 쿠키, 인증 토큰 등

Host 요청 대상 서버의 도메인 Host: www.example.com
User-Agent 클라이언트 정보 (브라우저 등) User-Agent: Mozilla/5.0
Accept 클라이언트가 처리 가능한 MIME 타입 Accept: text/html
Cookie 클라이언트가 보유한 쿠키 정보 Cookie: sessionId=abc123

 

3) 바디 (Body) — 선택사항

  • GET 요청은 일반적으로 바디 없음
  • POST, PUT 요청은 이곳에 데이터가 담긴다

예시 (POST 요청의 바디): id=test&password=1234

 

1-2. 응답 메시지 (Response Message)

서버가 클라이언트의 요청에 대해 결과를 전달할 때 사용하는 메시지이다.

구성 구조

① 상태라인 (Status Line)
② 헤더 (Header)
③ 빈 줄 (CRLF)
④ 바디 (Body)
 

1) 상태라인 (Status Line)

HTTP 버전 응답 메시지의 HTTP 버전 HTTP/1.1
상태 코드 요청 처리 결과 숫자 코드 200, 404, 500 등
상태 메시지 상태 코드에 대한 설명 OK, Not Found 등

ex) HTTP/1.1 200 OK

 

2) 헤더 (Header)

응답에 대한 부가 정보가 담긴다.

예: 콘텐츠 타입, 길이, 서버 정보, 쿠키 설정 등

헤더 이름설명예시
Content-Type 응답 본문의 MIME 타입 text/html, application/json
Content-Length 응답 바디의 길이 (byte) Content-Length: 1234
Set-Cookie 클라이언트에 쿠키 설정 지시 Set-Cookie: sessionId=xyz789

 

3) 바디 (Body)

실제 응답 데이터가 담기는 부분이다.
→ HTML, 이미지, JSON 등 다양한 형식이 사용된다.

 

ex) <html> <body>환영합니다!</body> </html>

 

1-3. 요청/응답 메시지 예시 정리

요청 메시지 예시

GET /hello HTTP/1.1 Host: www.example.com User-Agent: Mozilla/5.0 (바디 없음)

 

응답 메시지 예시

HTTP/1.1 200 OK Content-Type: text/html Content-Length: 1024 <html>...</html>
 
이것이 핵심~