HTTP

수원 개발자·2023년 11월 22일
0

NestJS

목록 보기
1/15
post-thumbnail

HTTP란 클라이언트와 서버가 통신하는 방법 중 하나이다.
클라이언트가 요청을 보내면 서버가 응답을 반환한다.
요청과 응답의 구조화된 데이터를 보낼 때 일반적으로 JSON 구조를 사용한다.

JSON

JSON은 "JavaScript Object Notation"의 약자로, 데이터를 저장하고 전송하기 위한 경량의 데이터 형식이다.
이 형식은 사람과 기계가 모두 이해하기 쉽도록 설계되어 있다.
JSON 구조는 JS 객체와 구조가 매우 비슷하다. 이는 요청과 응답의 body에 사용되는 구조이다.
Key/Value 짝으로 이루어져 있다. Key 값은 string만 허용을 한다.

이런 형식으로 데이터를 표현하면, 웹 애플리케이션에서 서버로부터 데이터를 받거나, 다른 시스템 간에 데이터를 교환할 때 사용된다.
주로 웹에서 데이터를 주고 받을 때, API로 데이터를 전송하거나, 설정 파일로 사용될 때 많이 쓰인다.

HTTP 요청의 구성 요소

  • URL : URL은 자원의 위치를 나타내는 주소이며, 웹 상의 리소스를 식별하기 위해 사용된다. 일반적으로 프로토콜(http 또는 https), 호스트(도메인), 포트, 경로, 쿼리 문자열 등으로 구성된다.
  • Method : HTTP 요청 메소드는 서버에게 클라이언트의 요청이 어떤 동작을 원하는지 알려주는 역할을 한다.
  • Header : HTTP 요청과 응답에 대한 추가 정보를 담고 있는 부분이다. 헤더에는 요청이나 응답의 유형, 길이, 사용 가능한 데이터 형식, 인증 정보 등이 포함된다. 예를 들면, 쿠키 정보나 사용자 에이전트(User-Agent) 등이 헤더에 포함될 수 있다.
  • Body : HTTP 요청이나 응답의 본문을 나타내는 부분이다.
    주로 POST나 PUT 같은 메소드로 전송되는 데이터가 여기에 들어가게 된다. 예를 들어, HTML 폼 데이터나 JSON 형식의 데이터가 요청의 바디에 들어갈 수 있다.

Method

  • GET: 리소스를 가져오기 위해 사용된다. 데이터를 요청할 때 사용한다.
  • POST: 리소스를 생성하기 위해 사용된다. 서버에 데이터를 제출할 때 사용한다.
  • PUT: 리소스를 업데이트하기 위해 사용된다. 보통 전체 업데이트에 사용한다.
  • PATCH : 리소스를 업데이트하기 위해 사용된다. PUT과 다른 점은 PUT은 리소스가 없으면 생성하지만 PATCH는 리소스가 없으면 즉, 업데이트 할 데이터가 없으면 에러를 던진다.
  • DELETE: 리소스를 삭제하기 위해 사용된다.

그 외에도 PATCH, HEAD, OPTIONS 등 다양한 메소드가 있다.

Header는 메타 데이터를 정의한다.
메타 데이터는 데이터에 대한 데이터 즉, 요청에 대한 정보를 정의한다.
흔한 예제로 Cookie, 인증 토큰, 요청의 바이트 길이, 요청 / 응답을 보낸 Host, 요청 할 때 사용된 클라이언트 타입과 버전 등을 정의한다.
Key/Value 형태로 정의되고 Key와 Value 모두 String 형태다.

Body

Body는 요청에 대한 로직 수행에 직접적으로 필요한 정보를 정의한다.
만약 새로운 블로그 글을 생성하는 POST 요청을 한다면 이 글을 생성할 때 필요한 제목, 내용 등의 모든 데이터를 Body에 입력하게 된다.
일반적으로 JSON 구조를 사용하며 Header와 가장 큰 차이점은 Header는 요청 자체에 대한 정보를 담고 있고 Body는 요청을 수행하는데 필요한 데이터를 담고 있다는 것이다.

HTTP 응답의 구성 요소

  • Status Code : 응답의 종류
  • Header : 응답의 메타 데이터
  • Body : 응답에 관련된 데이터

Status Code

Status Code는 응답의 상태를 분류해준다.

  • 100 ~ 199 : 정보 응답 (Informational Response)
  • 200 ~ 299 : 성공 응답 (Successful Response)
  • 300 ~ 399 : 리다이렉션 메세지 (Redirection Message)
  • 400 ~ 499 : 클라이언트 에러 응답 (Client Error Response)
  • 500 ~ 599 : 서버 에러 응답 (Server Error Response)

주요 Status Code

0개의 댓글

관련 채용 정보