공부/HTTP

HTTP 웹 기본 지식 ➁ HTTP 특징

jihyee 2021. 12. 11. 03:51
 

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

실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., 웹 기술을 사용하는 개발자라면 누구나 OK!꼭 필요한 HTTP의 핵심을 알려드립니다. 📣 확인해주세요!본 강의는 자바 스

www.inflearn.com

위 강의를 통해 공부한 내용을 정리함

 

 

 

HTTP

HyperText Transfer Protocol

통신할 때 사용하는 방식 중 원탑

HTML TEXT IMAGE 음성 영상 파일 JSON XML 거의 모든 형태의 데이터 전송에 쓰임

서버간에 데이터를 주고 받을 때도 거의 HTTP 사용

 

→ 지금은 HTTP 시대!

 

HTTP 1.*

HTTP 2.*

HTTP 3.*

 

버전이 있는데 사용 기준은 거의 HTTP 1.1 이고 이후 버전들은 성능 위주

 

HTTP 특징

 

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

1. 클라이언트 서버 구조

 

request 랑 response 를 구분해서 클라이언트와 서버가 각각 통신에 제약없이 독립적으로 진화할 수 있음

 

2. 무상태 프로토콜

 

stateful (상태 유지) vs stateless (상태 비유지)

 

 

클라이언트와 통신하면서

 

클라이언트가 준 정보 (상태) 를 서버가 저장하고 있으면 → stateful

클라이언트가 준 정보 (상태) 를 서버가 저장하지 않으면 → stateless

 

장, 단점이 있는데 예시와 함께 생각해보면,

 

상태 유지의 경우 서버가 이미 저장하고 있는 상태에 대한 정보는 안 줘도 되니까 요청이 상태 비유지에 비해 당연히 간결하다. 하지만 만약 중간에 통신하고 있는 서버에서 문제가 발생하거나 클라이언트 요구가 갑자기 많아지면 서버를 변경하거나 증축하는데 있어 한계가 있다.

 

상태 비유지의 경우 서버가 저장하는게 하나도 없어서 클라이언트에 대한 정보를 요청시에 모두 보내줘야 해서 요청이 길어진다. 하지만 서버에서 문제가 발생해서 서버를 변경하거나 서버를 증축해야하는 경우 확장에 용이하다.

 

정리하면, 

 

  상태 유지 상태 비유지
장점 요청 간결 서버 활용 + 확장성
단점 서버 한정 요청 복잡 + 약한 연결 보장

 

 

HTTP 는 이런 상태 유지, 상태 비유지 중에 상태 유지 의 특징을 가지고 있다.

 

상태 유지의 단점인 약한 연결성은 TCP/IP (3-way handshake + persistent connections)로 보완을 한다.