BE roadmap) HTTP란?(What is HTTP)

오성민·2023년 2월 20일
0

CS

목록 보기
6/10

목차

  • HTTP란?
  • HTTP 특징

HTTP란?

HTTP란? HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜이다.
프로토콜의 종류는 클라이언트-서버 프로토콜로 HTTP도 통신을 하기 위한 약속이다.
클라이언트 각각의 개별적인 요청들은 서버로 보내지고, 서버는 해당 요청을 받아 처리하고 응답(Response)을 요청자에게 제공한다.
클라이언트는 사용자 에이전트라는 도구를 이용한다.

사용자 에이전트란?

사용자 에이전트란? 사용자를 대신하여 동작하는 모든 도구이다.
이 역할은 주로 브라우저에 의해 수행되면서 사용자가 웹 서비스를 이용할 때에 보다 편리하고 효율적으로 사용할 수 있도록 도와주는 역할을 한다.
하지만 브라우저는 항상 요청을 보내는 개체이지 서버가 될 수는 없다.

HTTP 특징

  • HTTP는 OSI 7계층 중 응용(Application) 계층의 프로토콜이다.
  • 신뢰 가능한 전송 프로토콜이면 가능하지만 보통 TCP 혹은 TLS를 이용한다.
  • HTTP는 상태를 저장하지 않는다(Stateless). 이러한 특징 때문에 여러 장단점이 존재한다.
  • HTTP는 연결을 유지하지 않는다(Connectionless).
  • 응답과 요청은 메시지를 통해서 주고 받는다. 해당 메시지는 규격에 맞춰서 여러 가지 정보를 담고 있다. ex) state, content-type, accpet-language ...

Stateless

HTTP의 매우 중요한 특징이다.

장점

  • 확장성이 좋아진다(스케일 아웃 = 수평 확장). 상태를 저장하지 않기 때문에 A라는 서버랑 통신하다가 B라는 서버랑 통신하여도 상태만 유지된다면 상관이 없어진다. 이러한 점 때문에 보통 논리적으로는 1개의 서버를 유지하는 것이지만 물리적으로는 n개의 서버를 유지할 수 있다.
  • 장애 대응에 용이하다. A라는 서버에게 요청하다 A라는 서버가 갑자기 죽게 되어도 B라는 서버에 요청을 보내면 되기 때문에 상관이 없어진다.

단점

  • 특별한 설정을 해주지 않는다면 서버는 클라이언트를 알 수 없다. 설정을 해주지 않는다면 로그인을 하고 다른 것을 클릭한다면 로그인이 풀린다. 그래서 보통 쿠키나 세션 등을 통해서 인증 및 인가가 이루어지고, 클라이언트를 구분한다.

Connectionless

장점

  • 리소스를 줄일 수 있다. 서버가 계속해서 연결을 유지하고 있다면 특별한 요청이 없어도 계속해서 리소스를 사용해야 한다. 하지만 응답을 보내고 연결을 유지하지 않는다면 연결을 유지하는데 사용되는 리소스가 사용되지 않는다.

단점

  • 연결을 끊었으니 다시 사용하려고 연결을 할 때 오버헤드가 발생할 수 있다.
profile
풀스택을 지향하는 개발자

0개의 댓글