1) 모든 것이 HTTP
2) 클라이언트 서버 구조
3) Stateful, Stateless
4) 비연결성
5) HTTP 메시지
-----------------------------------------------------------------------------------------------------------------------------------------
1) 모든 것이 HTTP
- 원래 HTML보내는 프로토콜이었으나 현재 많은 파일을 보냄
- HTML, TEXT
- IMAGE, 음성, 영상, 파일
- JSON, XML (API)
- 거의 모든 형태의 데이터 전송 가능
- 서버간에 데이터를 주고 받을 때도 대부분 HTTP 사용
- HTTP 버전 : HTTP/1.1 이 가장 중요
- TCP 기반 : HTTP/1.1 HTTP/2
- UDP 기반 : HTTP/3
-----------------------------------------------------------------------------------------------------------------------------------------
2) 클라이언트 서버 구조

1. 요청 2. 대기 3. 응답 ...3가지의 단순한 구조
-----------------------------------------------------------------------------------------------------------------------------------------
3) Stateful, Stateless
1. Stateless
- 서버가 클라이언트의 상태 보존 X
- 장점 : 서버의 확장성 높음(스케일 아웃)
- 단점 : 클라이언트가 추가 데이터 전송

Stateful : 중간에 점원 바뀌면 장애 ( 서버에서 상태유지 필수 )
Stateless : 중간에 점원 바뀌어도 장애X ( 요청할때부터 필요한 데이터 다 담아서 전송 )
= 서버가 중간에 바뀌어도 된다.
= 서버 무한 증설 가능 (스케일 아웃)
1) Stateful : 중간에 서버 장애나면 처음부터

2) Stateless :중간에 서버 장애나도 괜찮음, 무한증설가능


#Stateless의 한계 : 최대한 무상태, 최소한 상태유지, 단점 : 데이터를 너무많이 보내야한다.

-----------------------------------------------------------------------------------------------------------------------------------------
4) 비연결성
- 기본적으로 비연결성




지속연결 시 서버 내부적으로 정한 시간만큼 유지 ( 몇 초 ) ->시간절약

-----------------------------------------------------------------------------------------------------------------------------------------
5) HTTP 메시지


#HTTP 메시지 구조


#start-line
1) 요청 메시지
start-line = request-line : method SP(공백) request-target SP HTTP-version CRLF(엔터)
- HTTP method (GET: 조회)

- request-target ( /search?q=hello&hl=ko)

- HTTP version

2) 응답 메시지
start-line = status-line : HTTP-version SP status-code SP reason-phrase(사람읽을수있는 문구) CRLF
- HTTP 버전
- HTTP 상태코드 : 요청 성공, 실패 나타냄
. 200 : 성공
. 400 : 클라이언트 요청 오류
. 500 : 서버 내부 오류
- 인간이 이해할 수 있는 짧은 단어

#header
- Host (대소문자구분X) 뒤에 붙여서 ' : '

#empty-line
- CRLF
#message body
- 실제 전송할 데이터
- HTML 문서, 이미지, 영상, JSON 등등 byte로 표현할 수 있는 모든 데이터 전송 가능
출처 : 인프런 김영한님의 강의를 수강 후 정리한 내용입니다.
꾸준히 다시보자.
1. 220630
2. 220714
3. 220819
'Java, Spring > HTTP 웹 기본 지식' 카테고리의 다른 글
Section 6. HTTP 상태 코드 (0) | 2022.06.23 |
---|---|
Section 5. HTTP 메서드 활용 (0) | 2022.06.22 |
Section 4. HTTP 메서드 (0) | 2022.06.19 |
Section 2. URI와 웹 브라우저 요청 흐름 (0) | 2022.06.18 |
Section 1. 인터넷 네트워크 (0) | 2022.06.18 |