본문 바로가기
공부방

[인프런] HTTP란 무엇인가

by hseong 2023. 3. 25.
 

모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의

실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., - 강의 소개 | 인프런

www.inflearn.com

  • HTTP는 리소스들을 가져올 수 있도록 해주는 프로토콜
  • 웹에서 이루어지는 모든 데이터 교환의 기초이며, 클라이언트-서버 프로토콜
  • HTML, TEXT, IMAGE, JSON, XML 등 서버간에 데이터를 주고 받을 때 대부분 HTTP를 사용

 

HTTP 특징

  • 클라이언트 서버 구조
  • 무상태 프로토콜, 비연결성
  • HTTP 메시지
  • 단순함, 확장 가능

 

1) 클라이언트 서버 구조

  • 요청 응답 구조
  • 클라이언트는 서버에 요청을 보내고, 응답을 대기
  • 서버가 요청에 대한 결과를 만들어 응답

2) 무상태 프로토콜(stateless)

  • 서버가 클라이언트의 상태를 보존하지 않는다.

  • 응답 서버를 쉽게 바꿀 수 있기 때문에 자유로운 스케일 아웃이 가능하다.
  • HTTP는 상태를 가지지 않지만 HTTP 쿠키는 상태가 있는 세션을 만들 수 있도록 해준다.

3) 비연결성

  • HTTP는 기본이 연결을 유지하지 않는 모델
  • 1시간 동안 수천명이 서비스를 사용해도 실제 서버에서 동시에 처리하는 요청은 수십개 이하로 매우 작다.
  • 서버 자원을 매우 효율적으로 사용할 수 있다
  • 이로 인해 매번 TCP/IP 연결을 새로 맺어야 하나, 지금은 HTTP 지속 연결(Persistent Connections)로 문제를 해결

4) HTTP 메시지

  • HTTP 메시지 구조는 개행, 헤더, 공란, 메시지 바디로 구성되어 있다.

시작 라인(요청)

  • HTTP 메서드(서버가 수행해야 할 행위)
  • 요청 대상(절대경로[?쿼리])
  • HTTP 버전

시작 라인(응답)

  • HTTP 버전
  • HTTP 상태 코드(요청 성공, 실패를 나타냄)
  • 이유 문구(사람이 이해할 수 있는 짧은 상태 코드 설명 글)

HTTP 헤더

  • HTTP 전송에 필요한 모든 부가정보
  • 필요시 임의의 헤더를 추가할 수 있다.

HTTP 메시지 바디

  • 실제 전송할 데이터
  • HTML 문서, 이미지, 영상, JSON 등 byte로 표현할 수 있는 모든 데이터의 전송이 가능하다.

 

5) 단순함 확장 가능

  • HTTP 메시지는 단순한다.
  • 클라이언트와 서버가 새로운 헤더의 의미에 대해 합의만 이루어진다면, 언제든 새로운 기능을 추가할 수 있다

'공부방' 카테고리의 다른 글

[TIL 06/20] IoC, DI, ApplicationContext  (0) 2023.06.20
[TIL 06/19]  (0) 2023.06.19
[인프런] HTTP 메서드  (0) 2023.03.29
[인프런] URI와 웹 브라우저 요청 흐름  (0) 2023.03.28
[인프런] 네트워크 기본  (0) 2023.03.28