웹(HTTP)
HTTP 기본
까르르꿍꿍
2022. 1. 5. 15:36
김영한 선생님의 강의를 들으면서 정리하며 복습을 해보는 시간
HTTP
HyperText Transfer Protocol
- HTTP 메시지에 모든 것을 전송
- HTML, TEXT
- IMAGE, 음성, 영상, 파일
- JSON, XML (API)
- 거의 모든 형태의 데이터 전송 가능
- 서버간에 데이터를 주고 받을 때도 대부분 HTTP 사용
TCP: HTTP/1.1, HTTP/2
UDP: HTTP/3
현재 HTTP/1.1 주로 사용
HTTP/2, HTTP/3 도 점점 증가
HTTP 특징
1.클라이언트 서버 구조
- Request Response 구조
- 클라이언트는 서버에 요청을 보내고, 응답을 대기
- 서버가 요청에 대한 결과를 만들어서 응답
2.무상태 프로토콜
- 스테이스리스(Stateless)
서버가 클라이언트의 상태를 보존X
장점: 서버 확장성 높음(스케일 아웃) (중간에 다른 서버로 바뀌어도 가능하기 때문에)
단점: 클라이언트가 추가 데이터 전송 (이유: 클라이언트 상태를 저장하고 있지 않기 떄문에 클라이언트가 이전 상태까지 다 보내줘야함)
- Stateful, Stateless 차이
상태 유지: 중간에 다른 서버로 바뀌면 안된다. (중간에 다른 서버으로 바뀔 때 상태 정보를 다른 서버에게 미리 알려줘야 한다.)
무상태: 중간에 다른 서버로 바뀌어도 된다.
갑자기 클라이언트 요청이 증가해도 서버를 대거 투입할 수 있다.
무상태는 응답 서버를 쉽게 바꿀 수 있다. -> 무한한 서버 증설 가능
- Stateless 실무 한계
모든 것을 무상태로 설계 할 수 있는 경우도 있고 없는 경우도 있다. 예)로그인
결국 최대한 무상태로 만들려고 해보고 어쩔 수 없을 때 상태 유지를 해야한다.
3.비 연결성(connectionless)
HTTP는 기본이 연결을 유지하지 않는 모델
연결이 되어 있지 않아서 수많은 자원이 올떄 마다 연결을 하는 시간 낭비가 있는데 이걸
지속 연결로 해결~