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

클라이언트가 서버에 무언가를 요청할 때 보내는 메시지이다.
| 메서드 | 클라이언트의 요청 방식 | GET, POST, PUT, DELETE 등 |
| 요청 URI | 요청 리소스의 경로 | /index.html |
| HTTP 버전 | 사용 중인 HTTP 버전 | HTTP/1.1 |
ex) GET /index.html HTTP/1.1
요청에 대한 부가적인 정보들이 포함된다.
예: 브라우저 종류, 언어 설정, 쿠키, 인증 토큰 등
| Host | 요청 대상 서버의 도메인 | Host: www.example.com |
| User-Agent | 클라이언트 정보 (브라우저 등) | User-Agent: Mozilla/5.0 |
| Accept | 클라이언트가 처리 가능한 MIME 타입 | Accept: text/html |
| Cookie | 클라이언트가 보유한 쿠키 정보 | Cookie: sessionId=abc123 |
예시 (POST 요청의 바디): id=test&password=1234
서버가 클라이언트의 요청에 대해 결과를 전달할 때 사용하는 메시지이다.
| HTTP 버전 | 응답 메시지의 HTTP 버전 | HTTP/1.1 |
| 상태 코드 | 요청 처리 결과 숫자 코드 | 200, 404, 500 등 |
| 상태 메시지 | 상태 코드에 대한 설명 | OK, Not Found 등 |
ex) HTTP/1.1 200 OK
응답에 대한 부가 정보가 담긴다.
예: 콘텐츠 타입, 길이, 서버 정보, 쿠키 설정 등
| Content-Type | 응답 본문의 MIME 타입 | text/html, application/json |
| Content-Length | 응답 바디의 길이 (byte) | Content-Length: 1234 |
| Set-Cookie | 클라이언트에 쿠키 설정 지시 | Set-Cookie: sessionId=xyz789 |
실제 응답 데이터가 담기는 부분이다.
→ HTML, 이미지, JSON 등 다양한 형식이 사용된다.
ex) <html> <body>환영합니다!</body> </html>
