🌲 Request 와 Response

2023. 8. 3. 20:51· Spring/🌲 Spring
목차
  1. Request 와 Response

Request 와 Response

이글을 찾아보는것은 개발을 접한지 얼마 안된 사람일수 있다. 이것을 추리 할 수 있을 정도로 개발을 시작하면 빠르게 만날수 있고 모르면 개발이 어려워지는 중요한 개념이다.

HTTP 의 특징

  1. Request(요청) / Response(응답)
    • 클라이언트에서 Request 를 서버에게 보낸다
    • 서버에서 Response 를 클라이언트에게 보낸다
  2. Stateless
    • 상태를 유지하지 않는다는 특성으로 HTTP 통신은 독립적이기 때문에 과거의 통신에 대한 내용은 전혀 알수 없다 따라서 모든 통신에는 필요한 모든 정보를 담아 요청을 하게 된다는 것을 알수 있다.

Request

메세지의 구조는 크게 세부분으로 구성되어있다.

 

1. Start line

요청의 첫번째 줄 이며 이또한 세부분으로 나누어져있다

  • HTTP Method : 해당 요청이 의도하고 있는 액션
  • Request target : 해당 request 가 전송되는 목표 url
  • HTTP Version : 사용되는 HTTP 의 버전(주로 1.1이 사용된다)

결과

GET /login HTTP/1.1 - login 을 GET메소드를 사용해서 요청하고 HTTP는 1.1 버전이다.

 

2. Header

해당 요청에 대한 추가 정보를 담고 있는 부분

  • key : value 값으로 되어있다. 자주 사용되는 HEADRE의 정보가 있다
    • HOST : 요청을 보내는 타겟의 주소, 웹사이트는 기본주소 (www.naver.com)
    • user-Agent : 요청을 보내는 클라이언트에 대한 정보 (chrome)
    • Content-Type : 해당 요청이 보내는 메세지 body 타입 (application/json)
    • Content-Length : body 길이
    • Authorization : 인증/인가를 처리하기 위해 토큰을 담아서 전송할때가 있다.

3. Body

간단하다. 보낸 내용이다

 


Response

똑같이 3가지의 구조로 이루어져있다

 

1. Start Line

응답의 상태 줄, 응답은 요청에 대한 처리 상태를 클라이언트에게 알려주면서 시작하게 된다.

  • HTTP Version : 요청의 HTTP 버전과 동일
  • Status Code : 응답 메세지의 상태 코드
  • Status Text : 응답 상태에 대한 간략한 설명

 

2. Headers

요청의 헤더와 동일하다. 응답의 추가 정보를 담고 있는 부분이다.

 

3. Body

요청의 Body와 일반적으로 동일하다.

요청의 메소드에 따라 Body 가 항상 존재하지 않듯이 응답도 응답의 형태에 Body가 없을 수 있다. 주로 사용되는 Body의 데이터 타입은 JSON이다.

'Spring > 🌲 Spring' 카테고리의 다른 글

🌲 @NoArgsConstructor 와 @AllArgsConstructor 그리고 @RequiredArgsConstructor  (0) 2023.08.03
🌲 RestController 와 Controller 의 차이  (0) 2023.08.03
🌲 개발자가 서비스를 주고 받을 때 고민하는 3가지(feat. SSR, CSR)  (0) 2023.08.01
🌲 서블릿(Servlet)  (0) 2023.08.01
🌲 멀티 쓰레드(feat. Servlet)  (0) 2023.08.01
  1. Request 와 Response
'Spring/🌲 Spring' 카테고리의 다른 글
  • 🌲 @NoArgsConstructor 와 @AllArgsConstructor 그리고 @RequiredArgsConstructor
  • 🌲 RestController 와 Controller 의 차이
  • 🌲 개발자가 서비스를 주고 받을 때 고민하는 3가지(feat. SSR, CSR)
  • 🌲 서블릿(Servlet)
늦은산책
늦은산책
늦은산책
중얼중얼블로그
늦은산책
전체
오늘
어제
  • 분류 전체보기
    • 오류 모음집
    • CS
      • 💾 자료구조
      • 👫🏼 정렬
      • 🖥 네트워크
      • 💻 운영체제
      • 💾 DB
      • 🌌 알고리즘
      • 📝 언어
    • 테스트
    • Git 초보에게 필요한 Git bash사용법
    • 프로젝트
      • 팀 프로젝트
      • 개인 프로젝트
      • 항해99 개인 프로젝트
      • 스위프 프로젝트(Lit Map)
    • Java
      • 객체 지향
    • Spring
      • 🌲 Spring
      • 👨‍💻 SpringSecurity
      • 🌵 JPA
    • MSA
      • MSA 강좌 - 이도원 강사님
    • Docker(도커)
    • 코딩테스트
      • 🧮 프로그래머스
      • 🎲 백준
    • 항해99
      • 🕛 1주차
      • 🕐 2주차
      • 🕑 3주차
      • 🕒 4주차
    • AWS
    • CI와CD

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 개발자포토폴리오
  • 개발자포트폴리오
  • 카우치코딩
  • 개발자취준
  • 항해99
  • 취리코
  • 코딩테스트
  • couchcoding
  • 카우치코딩_포트폴리오_멘토링
  • 카우치코딩_팀프로젝트
  • 취업리부트코스
  • 개발자취업
  • 개발자이력서

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.0
늦은산책
🌲 Request 와 Response
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.