[TIL] HTTP

김시원·2022년 11월 25일
0

TIL

목록 보기
29/30

HTTP 메시지 이해

✔️ 클라이언트와 서버 간 Request, Response는 HTTP 메시지 규약을 따른다.
✔️ 그래서 HTTP 규약을 이해하는게 개발자에겐 매우 중요.
https://developer.mozilla.org/ko/docs/Web/HTTP/Messages

💡 request, response에는 3가지가 있다. 시작줄(상태줄), 헤더, 바디 3가지로 나누어져 있다.

  1. 시작줄
    ▪️ response에서는 상태줄이라고 부름.
  2. 헤더
  3. 바디

🔖 Request

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 데이터

💡 헤더는 추가적인 정보(어떤 형태인지)를 보내는거고, 메인 내용은 본문에 담겨있음.


🔖 Response

1. 상태줄 : API 요청 결과

HTTP/1.1 404 Not Found
(버전) (상태코드) (상태 텍스트)

▪️ 상태코드 : 서버에서 클라이언트의 요청을 어떻게 처리했는지 결과를 담고 있는 것. 그래서 이 숫자만 보면 API 요청이 어떻게 돼 있구나를 알 수 있음.
▪️ 상태 텍스트 : 상태코드에 대한 설명. ex) 404에 대한 설명


2. 헤더
➡️ contentType, Location만 알면 됨

  • contentType : 내가 보내는 정보가 어떤 타입이야 라고 얘기하는 거.
    ▪️ 없는경우
    ▪️ Response 본문 내용이 HTML인 경우
    Content type: text/html
    ▪️ Response 본문 내용이 JSON인 경우
    Content type: application/json

  • Location : redirect 할 페이지 URL

3. 본문(body)
▪️ HTML

<!DOCTYPE html>
<html>
  <head><title>By @ResponseBody</title></head>
   <body>Hello, Spring 정적 웹 페이지!!</body>
</html>

▪️ JSON

{ 
  "name":"홍길동",
  "age": 20
}

profile
IT 개발자 시원

0개의 댓글

관련 채용 정보