모든 개발자를 위한 HTTP 웹 기본 (강의) 지식 정리 3(HTTP 기본)

RisingJade의 개발기록·2022년 2월 16일
1

3. HTTP 기본


3.1 모든것이 HTTP

  • 요즘엔 HTTP 메시지에 모든 것을 전송한다.
  • HTML, TEXT, IMAGE, 음성, 파일, 영상, JSON, XML 등등
  • 서버간에 데이터를 주고 받을때도 대부분 HTTP 사용

HTTP 역사

  • HTTP/0.9 1991년: GET 메서드만 지원, HTTP 헤더X
  • HTTP/1.0 1996년: 메서드, 헤더 추가
  • HTTP/1.1 1997년: 가장 많이 사용, 우리에게 가장 중요한 버전
  • RFC2068 (1997) -> RFC2616 (1999) -> RFC7230~7235 (2014)
  • HTTP/2 2015년: 성능 개선
  • HTTP/3 진행중: TCP 대신에 UDP 사용, 성능 개선

기반 프로토콜

  • TCP: HTTP/1.1, HTTP/2
  • UDP: HTTP/3
  • 현재 HTTP/1.1 주로 사용

HTTP 특징

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

3.2 클라이언트 서버 구조

  • Request Response 구조
  • 클라는 서버에 요청을 보내고, 응답 대기
  • 서버는 요청에 대한 결과를 만들어 반환(응답)
  • 예에에에전에는 이런 구분이 없어서 중구난방이였다고 한다..
  • 클라와 서버가 확실히 구분되면서 양쪽이 독립적으로 개발 및 운영하기 편해졌다.

3.3 stateful, stateless

stateless란?

  • 서버가 클라이언트 상태를 보존하지 않음, 따로 저장하거나 유지하지 않는다.
  • 장점: 서버가 확장하기 쉬워진다.(스케일 아웃)
  • 단점: 클라이언트가 추가 데이터를 전송해야된다.
  • 클라가 계속해서 추가적인 상태(정보)를 주어야 한다.
  • 담당 서버가 장애가 나서 팅겨도 다른 서버가 이어서 계속 행동할 수 있다.

    stateful

  • stateless 반대
  • 담당하고 있는 서버가 장애가 나서 팅기면 클라는 했던 행동을 처음부터 다시해야된다.
profile
언제나 감사하며 살자!

0개의 댓글