HTTP 메시지 이해
✔️ 클라이언트와 서버 간 Request, Response는 HTTP 메시지 규약을 따른다.
✔️ 그래서 HTTP 규약을 이해하는게 개발자에겐 매우 중요.
https://developer.mozilla.org/ko/docs/Web/HTTP/Messages
💡 request, response에는 3가지가 있다. 시작줄(상태줄), 헤더, 바디 3가지로 나누어져 있다.
1. 시작줄 : API 요청 내용 (필수)
GET naver.com HTTP/1.1
▪️ request에서는 API호출부분이 제일 앞에 들어간다.
2. 헤더
➡️ contentType
없을 수도 있고(필수는 아님), 있을수도 있다.
▪️ form
으로 보낼 때 : form 형태의 요청이다. 라고 헤더를 통해 알려주는 것
Content type: application/x-www-form-urlencoded
▪️ ajax
를 요청할 때 : json 형태로 요청을 보내겠다.
Content type: application/json
3. 본문(body)
➡️ ex) 내가 form태그로 보냈는데 어떤 정보를 본문에 담아서 보낼거냐.
▪️ Get 요청 시
: 없음
▪️ Post 요청 시
: 보통 사용자가 입력한 폼 데이터/ ajax를 요청할 때는 json 데이터
💡 헤더는 추가적인 정보(어떤 형태인지)를 보내는거고, 메인 내용은 본문에 담겨있음.
1. 상태줄 : API 요청 결과
HTTP/1.1 404 Not Found
(버전) (상태코드) (상태 텍스트)
▪️ 상태코드
: 서버에서 클라이언트의 요청을 어떻게 처리했는지 결과를 담고 있는 것. 그래서 이 숫자만 보면 API 요청이 어떻게 돼 있구나를 알 수 있음.
▪️ 상태 텍스트
: 상태코드에 대한 설명. ex) 404에 대한 설명
2. 헤더
➡️ contentType, Location만 알면 됨
Content type: text/html
Content type: application/json
3. 본문(body)
▪️ HTML
<!DOCTYPE html>
<html>
<head><title>By @ResponseBody</title></head>
<body>Hello, Spring 정적 웹 페이지!!</body>
</html>
▪️ JSON
{
"name":"홍길동",
"age": 20
}