-
HTTP 특징
클라이언트 서버 구조
- 클라이언트와 서버가 분리(개별적으로 관리하는데 유용)
무상태 프로토콜(Stateful, Stateless)
- Stateful(상태 유지)
- 로그인(브라우저 쿠키와 서버 세션등을 사용해서 상태 유지), 상태 유지는 최소한만 사용
- Stateless(무상태)
- 무상태는 응답 서버를 쉽게 바꿀 수 있다.(무한한 서버 증설 가능)
- 로그인이 필요 없는 페이지
- 요청하는 데이터가 Stateful보다 상대적으로 크다.
- 서버 개발자들이 어려워하는 업무(같은 시간에 들어오는 대용량 트래픽 처리)
비 연결성
- 서버는 연결 유지x, 최소한의 자원 사용
- 단점 ) TCP/IP 연결을 새로 맺어야함 - 3 way handshake 시간 추가
- 웹브라우저로 사이트를 요청하면 많은 자원이 함께 다운로드(자바스크립트, HTMl, CSS, 이미지 등)
- 해결) HTTP 지속 연결(Persistence Connections)로 문제 해결
- HTTP2 HTTP3에서 최적화
- 웹브라우저로 사이트를 요청하면 많은 자원이 함께 다운로드(자바스크립트, HTMl, CSS, 이미지 등)
HTTP 메시지
요청 메시지 시작 라인
- method + request-target + HTTP-version
- GET, POST, PUT, DELETE 등(method)
- 서버가 수행해야할 동작 지정(GET : 리소스 조회, POST : 요청 내역 처리)
- 요청 대상(request-target)
- 절대경로[?쿼리]
- HTTP 버전
응답 메시지 시작 라인
- HTTP 버전 + HTTP 상태코드 + 상태 구절(OK와 같은..)로 이뤄짐.
HTTP Header
- 필드 네임: 필드 값
- 용도 : HTTP 전송에 관한 정보가 모두 담겨 있음
- 메시지 바디 내용, 크기, 압축, 인증, 클라이언트 정보, 등
메시지 바디
- 실제 전송할 데이터, HTML 문서, 이미지, 영상 JSON 등 바이트로 표현 가능한 모든 데이터 전송 가능
'HTTP' 카테고리의 다른 글
HTTP 헤더 - 일반 헤더 (0) 2021.12.01 HTTP 상태 코드 (0) 2021.12.01 HTTP 메서드 (0) 2021.11.28 HTTP API (0) 2021.11.27 HTTP 기본 지식(1)(IP,TCP,UDP,PORT,DNS,URI) (0) 2021.11.22