본문 바로가기

강의/모든 개발자를 위한 HTTP

HTTP의 구조를 알아보자

  • Client 와 Server 간 Request, Response 는 HTTP 메시지 규약을 따름
  • HTTP 메시지는 웹 서비스 개발자(백엔드, 프론트 개발자)에게 매우 중요한 내용!

HTTP의 구조


HTTP 메시지는 서버와 클라이언트 간에 데이터가 교환되는 방식입니다.

메시지 타입은 두 가지가 있습니다.

요청(request)은 클라이언트가 서버로 전달해서 서버의 액션이 일어나게끔 하는 메시지고,

응답(response)은 요청에 대한 서버의 답변입니다.

 

 

Request와 Response는 startline, header, body등 3개의 구조로 나눠져 있습니다.

Request와 Response 각각의 구조를 조금 더 면밀히 살펴보도록 하겠습니다.

 

Reqest


Startline

- api 호출 부분입니다.

- 메서드, url, http version에 대한 정보가 나타나 있습니다.

 

GET **naver.com** HTTP/1.1

Header

헤더에서 가장 중요한 부분은 Content type일 것입니다.

Content type은 <form>태그로 요청하는 경우와 AJAX로 요청하는 경우에 따라 다르게 작성이 됩니다.

각각을 살펴보도록 하겠습니다.

 

 

1. HTML <form> 태그로 요청 시

 

Content type: application/x-www-form-urlencoded

 

2. AJAX 요청 시

 

Content type: application/json

Body

GET 요청 시: (보통) 없음

POST 요청 시: (보통) 사용자가 입력한 폼 데이터

 

name=홍길동&age=20

Response


Startline

http의 version 정보와, 상태 코드, 상태 텍스트를 나타내고 있습니다.

HTTP/1.1 404 Not Found

Header

Response의 header부분 또한 Content type이 가장 중요합니다.

Request에서는 form과 AJAX 두가지로 나눠졌지만

Response Header 에서는 HTMLJSON 두가지로 나눠지고 있습니다.

 

1. Content type

1-1. Response Body 내용이 HTML인 경우

 

Content type: text/html

 

1-2. Response Body 내용이 JSON인 경우

 

Content type: application/json

 

Response는 Header 부분에서 Contetn type만 살펴보았지만

Requestsms Header 부분에서 Location도 같이 살펴보도록 하겠습니다.

 

2. Location

2-1. Redirect 할 페이지 URL의 대한 정보가 들어있습니다.

Location: http://localhost:8080/hello.html

Body

1. body의 내용이 HTML인 경우

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

2. body의 내용이 JSON인 경우

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

 

Reference


Spring 심화반 1주차 [스파르타 코딩클럽]

'강의 > 모든 개발자를 위한 HTTP' 카테고리의 다른 글

HTTP 메서드의 속성  (0) 2022.04.21
HTTP API 생성  (0) 2022.04.21
HTTP Response의 이해 (@Controller, @RestController)  (0) 2022.03.26
HTTP  (0) 2022.03.08