- Stateful, Stateless
- 비 연결성 ( connectionless )
- HTTP 메서드
무상태 프로토콜 ( Stateless )
- 상태를 보존하지 않는 다는 뜻이다.
이러한 상태의 단점은 클라이언트에서 서버에 전송 한 정보여도 서버에서는 클라이언트의 상태를 저장하지 않아 계속해서 서버의 원하는 정보를 전송해야 한다.
Stateless 상태는 서버의 확장 ( scale out ) 이 쉽다.
어떠한 이벤트 때문에 클라이언트의 요청이 많아진다면 미리 서버를 많이 증설할 수 있다는 뜻이다.
상태유지 ( Stateful )
Stateful 상태면 클라이언트에서 보낸 정보를 서버에서 가지고 있어야 한다.
클라이언트의 정보를 가지고 있는 서버가 동작이 안된다면 해당 클라이언트 정보는 다른 서버가 가지고 있지 않기에 다시 다른 서버에게 클라이언트 정보를 전송해야 한다.
비연결성(connectionless)
- 클라이언트가 서버에게 요청 후 서버는 요청에 대한 응답을 내려주고 연결을 끊는다.
이러한 통신의 장점은 하나의 서버가 다수의 클라이언트 요청을 처리할 수 있다.
만약 연결성인 경우 서버와 클라이언트가 통신 후에 연결이 끊어 지지 않아 해당 서버는 다른 클라이언트의 요청을 처리할 수 없다.
비연결성에도 단점이 존재한다.
연결을 끊다 라는건 클라이언트가 요청을 할 때마다 3 way handshake 를 해야한다.
보통 홈페이지에 요청을 보내면 html 만 응답으로 오는 것이 아니라 css, js, 이미지.. 등등 응답이 내려온다.
이러한 문제점을 HTTP 지속 연결 (Persistent Connections)으로 문제를 해결했다.
- HTTP 초기
- HTTP 지속 연결(Persistent Connections)
HTTP 메시지
- HTTP 메시지의 구조는 아래 그림과 같다.
전체 구조는 위와 같은데 요청메시지와 응답메시지의 구조가 약간의 차이가 있다.
아래 그림을 보며 알아가보자.
- HTTP 요청 메시지
body 본문도 가질 수 있다.
- HTTP 응답 메시지
시작라인(start-line)
- 요청(request-line)
- method
- get, post, put, 등
- reuqest-target
- 요청 대상 search?q=hello&hi=ko HTTP-vesion 구성
- method
- 응답(response-line)
- HTTP-version status-Code reason-phrase(OK) 구성
HTTP 헤더(header)
- 요청, 응답
- 필드(Host, Content-Type 등) : value(필드에 해당하는 값) 구성
HTTP 전송에 필요한 모든 부가 정보를 포함하고 있다.
메시지 바디(Message Body)
- 요청, 응답
- 실제 전송 할 데이터를 포함(HTML, 이미지, 영상, JSON 등)
- byte 로 표현할 수 있는 모든 데이터를 전송할 수 있다.
'HTTP' 카테고리의 다른 글
[모든 개발자를 위한 HTTP 웹 기본 지식] HTTP 상태코드 (0) | 2022.11.16 |
---|---|
[모든 개발자를 위한 HTTP 웹 기본 지식] HTTP 메서드 활용 (0) | 2022.11.15 |
[모든 개발자를 위한 HTTP 웹 기본 지식] HTTP 메서드 (0) | 2022.10.24 |
[모든 개발자를 위한 HTTP 웹 기본 지식] HTTP 기본 - 모든 것이 HTTP, 클라이언트 서버 구조 (0) | 2022.10.08 |
[모든 개발자를 위한 HTTP 웹 기본 지식]URI와 웹 브라우저 요청 흐름 - URI, 웹 브라우저의 요청 흐름 (0) | 2022.10.05 |
[모든 개발자를 위한 HTTP 웹 기본 지식] 인터넷 네트워크 - PORT, DNS (2) | 2022.10.04 |
[모든 개발자를 위한 HTTP 웹 기본 지식] 인터넷 네트워크 - TCP, UDP (0) | 2022.10.03 |
[모든 개발자를 위한 HTTP 웹 기본 지식] 인터넷 네트워크 - 인터넷 통신, IP(인터넷 프로토콜) (0) | 2022.10.03 |