HTTP란?

728x90

 

1. HTTP의 정의

- 텍스트 기반의 통신 규약으로 인터넷에서 데이터를 주고 받을 수 있는 프로토콜

- HTML과 같은 리소스들을 전송하기 위해 사용

 

2. HTTP의 특징

(1) 무상태 (Stateless)

- 클라이언트와 서버 사이에 상태를 유지 하지 않는다. 
  예를들어 상태를 유지하지 않으면 로그인 후 페이지 이동을 하면 다시 로그인 페이지가 뜬다.

- 서버 확장성이 높다 (스케일 아웃)

- 클라이언트가 추가 데이터 전송을 해야해서 메모리 차지가 많다.

 

(2) 비연결성 (Connectionless)

- 클라이언트가 서버에 요청을 하고 응답을 받으면 바로 TCP/IP가 연결을 끊는다.

- 빠르게 응답을 제공 할 수 있기 때문에 연결을 계속 유지 하지 않는다 ( 지속연결 특징 )

- 요청과 응답이 한 번 이루어지면 연결을 바로 종료하기 때문에 TCP 3 Way Handshake를 매번 해야 한다.

- 서버 자원을 효율적으로 사용할 수 있다는 장점이 있다.

 

(3) 지속 연결

- 응답을 기다리지 않고 바로 다음 리퀘스트를 보내는 파이프라이닝이 가능하다.

- 요청과 응답이 한 번 이루어지면 바로 연결을 종료한다.

 

(4) 클라이언트 - 서버 구조

- 클라이언트가 요청하면 서버가 응답하는 구조

- 클라이언트가 HTTP 메세지를 만들어 보내면 서버에서 요청에 댛나 응답이 올 때까지 기다리고 서버는 요청에 대한 결과를 만들어 응답한다.

 

※ 클라이언트와 서버를 분리하는 이유

더보기

각자의 역할에 집중 할 수 있기 때문

클라이언트에서는 복잡한 비즈니스 로직이나 데이터를 다룰 필요 없이 UI 그리기에 집중을 하고 서버에서는 복잡한 비즈니스 로직이나 데이터를 다루는 데에만 집중하면 된다.

 

3. HTTP의 상태 코드

- 클라이언트가 보낸 요청의 처리 상태를 응답해서 알려주는 기능을 하며 100 ~ 500번대 숫자로 이루어져있다.

 

5. HTTP 메서드

- 서버가 수행해야 할 동작을 나타낸다.

- 총 9개의 메서드가 있으나 주로 사용하는 메서드는 5가지이다.

 

 

 

6. HTTP 메시지의 구조

- 전체적인 구조는 시작라인, 헤더, 공백라인, 바디로 나뉘고 요청인 지 응답인 지에 따라 차이가 있다.

 

728x90